반응형
1. normal
T = 10
for test_case in range(1, T + 1):
number = int(input())
arr = [list(map(int, input().split())) for _ in range(100)]
#거꾸로 간다. 도착부터
for i in range(100):
if arr[99][i] == 2:
# 도착 x지점 지정
x = i
break # 찾으면 멈춤
# 도착 y지점 지정
y = 99
while True:
# 왼쪽으로 갈 수 있는 경우 왼쪽으로 이동 후 위로
if x > 0 and arr[y][x-1]:
# 왼쪽으로 갈 수있는 한계까지 이동
while x > 0 and arr[y][x-1]:
x -= 1
else:
y -= 1 # 한계점 일 때 위로 감
# 오른쪽을 갈 수 있는 경우 오른쪽으로 이동 후 위로
elif x < 99 and arr[y][x+1]:
# 오른쪽으로 갈 수 있는 한계까지 이동
while x < 99 and arr[y][x+1]:
x += 1
else:
y -= 1 # 한계점 일때 위로 감
else: # 왼쪽오른쪽 아무곳도 못간다면 위로
y -= 1
if y == 0: # 도착
break
print('#{} {}'.format(test_case,x))
반응형
'알고리즘 > SWEA' 카테고리의 다른 글
[파이썬] [SWEA] 6485. 삼성시의 버스 노선 (0) | 2021.02.20 |
---|---|
[파이썬] [SWEA] 1209. [S/W 문제해결 기본] 2일차 - Sum (0) | 2021.02.20 |
[파이썬] [SWEA] 1221. [S/W 문제해결 기본] 5일차 - GNS (0) | 2021.02.20 |
[파이썬] [SWEA] 1216. [S/W 문제해결 기본] 3일차 - 회문2 (0) | 2021.02.20 |
[파이썬] [SWEA] 5356. 의석이의 세로로 말해요 (0) | 2021.02.20 |
댓글