[SWEA] 1210 Ladder 1

Heejin Ryu·2021년 2월 16일
0

Algorithm

목록 보기
7/14

문제의 저작권은 SW Expert Academy에 있습니다.
1210 Ladder 1

난이도 d4여서 쫄았는데 생각보다 쉬웠다.
처음으로 2를 가진 엔드포인트를 찾았고,
디폴트 값으로 col -= 1을 통해 위로 한 칸 올라가는데 맨 아랫줄 바로 옆에 1이 있는 경우를 예외처리 하기위함이다.
그리고 while문을 통해 col -= 1으로 맨 위에 올라갈 때 까지 계속 좌 우를 살피면서 좌 우에 값이 1이라면 턴.
턴 이후에 while문을 통해서 1이 나오지 않을 때까지 계속 돈다.
그리고 나와서 바로 또 한 칸 위로 올라간다.

row의 양 옆 엣지값을 검사해주어야한다.

import sys
sys.stdin = open("input (2).txt")

T = 10
N = 100
def find_end_point(matrix):
    for i in range(N):
        if matrix[N-1][i] == 2:
            return i

for tc in range(1, T+1):
    case = int(input())
    matrix = []
    for i in range(N):
        matrix.append(list(map(int, input().split())))
    number = 0

    end_point = find_end_point(matrix)

    col = N-1
    row = end_point

    while col != 0:
        if col == N-1: # 99
            col -= 1
        # left row > 1
        if row > 1 and matrix[col][row-1]:
            while row > 1 and matrix[col][row-1]:
                row = row-1
        # right row < 99
        elif row < N-1 and matrix[col][row+1]:
            while row < N-1 and matrix[col][row+1]:
                row = row+1
        col -= 1


    print("#{} {}".format(tc, row))
profile
Chocolate lover🍫 & Junior Android developer🤖

0개의 댓글