유형
구현
자료구조
set
로직
- 무한loop
- 다음 좌표 구하기
- 다음 좌표가 장애물, 방문지점, 범위밖인 경우
- 한 자리에서 4가지 방향을 전부 탐색하면 종료 조건
코드
import sys
R, C = map(int, sys.stdin.readline().split())
obsNum = int(input())
matrix = [[0]*C for _ in range(R)]
for _ in range(obsNum):
r, c = map(int, input().split())
matrix[r][c] = 1
sr, sc = map(int, input().split())
matrix[sr][sc] = 1
d = list(map(int, input().split()))
for i in range(4):
d[i] -= 1
dr = [-1,1,0,0]
dc = [0,0,-1,1]
pos = 0
dirSet = set()
answer = []
while( True ):
dirSet.add(d[pos])
nr = sr+dr[d[pos]]
nc = sc+dc[d[pos]]
if nr<0 or nr>=R or nc<0 or nc>=C or matrix[nr][nc] == 1:
pos = (pos+1)%4 #다음 방향
if d[pos] in dirSet:
answer.append(sr)
answer.append(sc)
break
else:
continue
else:
dirSet = set()
matrix[nr][nc] = 1
sr = nr
sc = nc
print(answer[0], answer[1])
'알고리즘 > 백준' 카테고리의 다른 글
백준 2910 - (python)빈도 정렬 (0) | 2021.05.01 |
---|---|
백준 17609 - (python)회문 (0) | 2021.05.01 |
백준 3190 - (python) 뱀 (0) | 2021.04.27 |
20055 - [Java]컨베이어 벨트 위의 로봇 (0) | 2021.04.21 |
20057 - 마법사 상어와 토네이도 (0) | 2021.04.18 |