https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14ABYKADACFAYh
정답 코드
for _ in range(10):
n = int(input())
ladder = [list(map(int, input().split())) for _ in range(100)]
x = 99
y = 0
line = []
for j in range(100):
if ladder[99][j] != 0:
line.append(j)
if ladder[99][j] == 2:
y = j #도착좌표
while x != 0:
if y-1 >= 0 and ladder[x][y-1] == 1: #left
tmp = line.index(y)
y = line[tmp-1]
x -= 1
elif y+1 < 100 and ladder[x][y+1] == 1: #right
tmp = line.index(y)
y = line[tmp+1]
x -= 1
else:
x -= 1
print(f"#{n} {y}")
사다리를 역순으로 올라가는 문제
단순 구현 문제로 사다리 라인과 도착 좌표를 구한다.
처음에 line을 [0]*100인 리스트로 설정해줬다가 메모리와 속도 측면에서 비효율적인 것 같아 line만 index로 찾는 코드로 수정해주었는데 메모리와 속도 측면에서 딱히 좋아진 모습을 보이지는 않았다.