본문 바로가기
알고리즘/시뮬레이션

[파이썬🐍] 백준 14503 : 로봇 청소기

by 코딩개미뚠뚠 2021. 6. 28.
반응형

오늘 면접본 곳 발표가 났는데 불합격이다...ㅜㅜ

첫면접이었고 나름 잘 봤다고 생각했는데 아쉽다.

그래도 너무 좌절까진 아니다. 매일매일 더 열심히하면 언젠가 합격이라는 단어를 볼 수 있겠지^^

 

 

백준 로봇청소기 골드5인데 골드는 처음 풀어본 것 같다.

삼성 sw역량테스트 문제라는데 생각만 잘하고 코딩하면 그렇게 어렵진 않다.

 

7월 목표는 프로그래머스 level3 전부 풀고 백준 골드문제 많이 풀기!!!

n, m = map(int, input().split())
x, y, d = map(int, input().split())
a = [list(map(int, input().split())) for _ in range(n)]
a[x][y] = 2
dx, dy = [-1, 0, 1, 0], [0, 1, 0, -1]  #서북동남

def clean(x, y, d):
    ans=1
    while True:
        c = False
        for k in range(4):
            d = (d+3)%4                 #왼쪽 회전
            nx, ny = x+dx[d], y+dy[d]
            if a[nx][ny] == 0:          #벽이 아니고 청소가 안되어있는 곳이라면
                a[nx][ny] = 2           #청소 완료 표시
                ans += 1
                x, y = nx, ny
                c = True
                break
        if not c:                        #네 방향 모두 청소할 수 없을 경우
            if a[x-dx[d]][y-dy[d]] == 1: #한칸 후진한 곳이 벽이라면
                return print(ans)
            else:
                x, y = x-dx[d], y-dy[d]  #한칸 후진

clean(x, y, d)
반응형

댓글