백준 1697. 숨바꼭질

2023. 9. 1. 17:24·백준

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

 

1697번: 숨바꼭질

수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일

www.acmicpc.net

import sys
from collections import deque

def bfs(v):
    q = deque([v])
    while q:
        v = q.popleft()
        if v == k:  # 목표값 찾은 경우
            return arr[v]  # 해당 목표값까지의 깊이(걸린시간) 반환
        for next_v in (v-1, v+1, 2*v):
            if 0 <= next_v < 100001 and not arr[next_v]: # 유효한 인덱스 범위에 방문하지 않았으면?
                arr[next_v] = arr[v] + 1  # 노드 깊이(=해당 위치까지 걸린 시간)
                q.append(next_v)  # 다음에 탐색할 값들 넣어주기(3개노드)

n, k = map(int, sys.stdin.readline().split())
arr = [0] * 100001  # visited 역할
print(bfs(n))

트리처럼 처음위치에서 -1, +1, *2 세 개로 계속 뻗어나가다가 목표값을 찾으면 그 깊이를 return

저작자표시 (새창열림)

'백준' 카테고리의 다른 글

백준 1463. 1로 만들기  (0) 2023.09.03
백준 5014. 스타트링크  (0) 2023.09.01
백준 7569. 토마토  (0) 2023.08.31
백준 2644. 촌수계산  (0) 2023.08.29
백준 2667. 단지번호붙이기  (0) 2023.08.29
'백준' 카테고리의 다른 글
  • 백준 1463. 1로 만들기
  • 백준 5014. 스타트링크
  • 백준 7569. 토마토
  • 백준 2644. 촌수계산
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (382)
      • React (16)
      • Next.js (5)
      • Javascript (5)
      • Typescript (4)
      • Node.js (2)
      • Cs (16)
      • 트러블 슈팅 (5)
      • Html (1)
      • Css (3)
      • Django (0)
      • vue (0)
      • Java (2)
      • Python (0)
      • 독서 (1)
      • 기타 (3)
      • 백준 (192)
      • swea (31)
      • 프로그래머스 (30)
      • 이코테 (4)
      • 99클럽 코테 스터디 (30)
      • ssafy (31)
      • IT기사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 태그

    개발자취업
    코딩테스트준비
    Til
    99클럽
    항해99
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
백준 1697. 숨바꼭질
상단으로

티스토리툴바