본문 바로가기

알고리즘/백준

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

⭐️ 맥주 마시면서 걸어가기

제목이 맘에 들어서 풀기 시작했다.

bfs로 거리를 모두 탐색하는데 거리가1000이하면 큐에 넣는 방식으로 진행했다.

-> 거리가 1000이하인곳 갈수만 있으면 맥주병 교체하는건 신경안써도된다.

import sys
from collections import deque
input = sys.stdin.readline
def bfs():
  q = deque()
  q.append((home[0], home[1]))
  while q:
    y, x = q.popleft()
    if abs(y - fest[0]) + abs(x - fest[1]) <= 1000:
      print("happy")
      return 
    for i in range(n):
      if not visited[i]:
        new_y, new_x = conv[i]
        if abs(y - new_y) + abs(x - new_x) <= 1000:
          q.append((new_y, new_x))
          visited[i] = 1
  print("sad")
  return

for _ in range(int(input())):
  n = int(input())
  home = list(map(int, input().split()))
  conv = []
  for i in range(n):
    y, x = map(int, input().split())
    conv.append((y, x))
  fest = list(map(int, input().split()))
  visited = [0 for i in range(n+1)]
  bfs()

'알고리즘 > 백준' 카테고리의 다른 글

2638. 치즈  (0) 2022.03.20
13164. 행복 유치원  (0) 2022.03.20
9576. 책 나눠주기  (0) 2022.03.20
2250. 트리의 높이와 너비  (0) 2022.03.02
3584. 가장 가까운 공통 조상  (0) 2022.02.21