알고리즘 공부/파이썬(Python)

백준 10709번 기상캐스터 파이썬

마달랭 2024. 6. 25. 14:15
반응형

리뷰

내가 최적해를 낸 것 같지는 않지만 쉬웠다!

문제 풀이

나는 날씨 정보에 대한 배열을 받아 올때 구름의 종착지를 구현하기 위해 뒤에 '.'를 추가하여 받아왔다.

-1로 이루어진 h * w크기의 배열을 추가로 생성해 주었다.

가로의 길이가 곧 반복해야 하는 횟수이므로 while문의 조건은 시간이 가로 크기를 벗어나지 않을 경우 루프를 돌게 했다.

만약 날씨 리스트가 c이고 정답 리스트가 -1일 경우 정답 리스트를 시간 값으로 변경시켰고 변경이 끝난 후에는 구름을 오른쪽으로 한칸 이동시켰다. 이후 시간을 1 올려주고 루프가 종료될 때까지 반복

참고 사항

정답 리스트를 그대로 출력해서 틀려버렸다. 2중 리스트 이므로 각 리스트를 개행 해주면 된다.

정답 코드

def q10709():
    # 백준 10709번 기상캐스터 파이썬
    h, w = map(int, input().split())
    lst = [list(input() + '.') for _ in range(h)]
    result = [[-1] * w for _ in range(h)]
    day = 0
    while day < w:
        for i in range(h):
            for j in range(w):
                if lst[i][j] == 'c' and result[i][j] == -1:
                    result[i][j] = day
        for i in range(h):
            for j in range(w - 1, -1, -1):
                if lst[i][j] == 'c':
                    lst[i][j], lst[i][j + 1] = '.', 'c'
        day += 1
    for i in result:
        print(*i)
q10709()

 

728x90
반응형