프로그래밍/문제풀이

[Python] 백준 9205 맥주 마시면서 걸어가기

성수동이민기 2022. 12. 1. 16:15

https://www.acmicpc.net/problem/9205

 

9205번: 맥주 마시면서 걸어가기

송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다.

www.acmicpc.net

 

# 9205 맥주 마시면서 걸어가기

import sys

input = sys.stdin.readline

T = int(input())
for _ in range(T):
    N = int(input())
    home_r, home_c = list(map(int, input().split()))
    conven = list()
    for _ in range(N):
        temp_r, temp_c = list(map(int, input().split()))
        conven.append([temp_r, temp_c])
    final_r, final_c = list(map(int, input().split()))
    conven.append([final_r, final_c])
    queue = list()
    queue.append([home_r, home_c])

    answer = 'sad'
    visited = [0] * len(conven)
    while queue:
        cur_r, cur_c = queue.pop()
        for idx, (con_r, con_c) in enumerate(conven):
            cur_dis = abs(con_r - cur_r) + abs(con_c - cur_c)
            if cur_dis <= 1000 and visited[idx] == 0:
                visited[idx] = 1
                queue.append([con_r, con_c])
                if con_r == final_r and con_c == final_c:
                    answer = 'happy'
                    break

    print(answer)

 

위는 readline 포함할 때

아래는 포함하지 않을 때