[백준12851] / 숨바꼭질 2 - BFS

2024. 10. 11. 10:40·Programming/Algorithm

 

백준12851

 

푼 날짜 : 2024.10.11

푼 문제 : [12851] / 숨바꼭질 2

사용한 언어 : python

알고리즘 : BFS

 

 

접근 방식 :

 

사실 저번에 풀다가 "가장 빠른 시간으로 찾는 방법이 몇 가지 인지 구하는 프로그램을 작성" 에서 막혔었다.

1 2
1 + 1 => 2
1 * 2 => 2

 

요런 테케의 경우 방법이 2가지인데 방문 처리를 해버리는 순간 조건문 안에 안들어가서 고민을 좀 했다.

 

visited[i] == -1 or visited[i] == visited[now] + 1

 

디버깅 하다가 요렇게 수정하고 바로 통과 !

역시 오늘도 하나 배워갑니다..

 

 

 

코드 :

import sys
from collections import deque

N, K = map(int, sys.stdin.readline().split())
visited = [-1 for _ in range(100001)]

def BFS(v):
    queue = deque([v])
    visited[v] = 0

    ans = 0
    while queue:
        now = queue.popleft()

        lst = [now+1, now-1, now*2]
        for i in lst:
        	# 범위 안에 있고, 방문하지 않았거나, 방문한 곳인데 최단 거리 일 경우
            if 0<=i<100001 and (visited[i] == -1 or visited[i] == visited[now]+1):
                if i == K: ans += 1 # 일치할 경우 카운트
                queue.append(i)
                visited[i] = visited[now] + 1 
   
    print(visited[K])    
    print(ans)  

# 처음부터 같은 위치에 있었을 경우
if N == K:
    print(0)
    print(1)
else: 
    BFS(N)

 

 

 

그래프 문제는 정말 흥미로워라~

 

 

'Programming > Algorithm' 카테고리의 다른 글

[백준2096] / 내려가기 - DP  (3) 2024.10.12
[백준7569] / 토마토 - BFS  (1) 2024.10.12
[백준14501] / 퇴사 - DP  (2) 2024.10.08
[백준2491] / 수열 - DP  (2) 2024.10.02
[백준2749] / 피보나치 수 3 - 분할정복, 거듭제곱, DP (feat. 피사노 주기)  (0) 2024.10.02
'Programming/Algorithm' 카테고리의 다른 글
  • [백준2096] / 내려가기 - DP
  • [백준7569] / 토마토 - BFS
  • [백준14501] / 퇴사 - DP
  • [백준2491] / 수열 - DP
__narrrrrmm
__narrrrrmm
__narrrrrmm
낢
__narrrrrmm
글쓰기 관리
전체
오늘
어제
  • 분류 전체보기 (71)
    • Programming (68)
      • Algorithm (61)
      • React JS (2)
      • SQL (5)
    • 낢의 하루 (1)
    • 대외활동 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

프로그래머스
알고리즘
파싱
백트레킹
SQL
다익스트라
DP
백트래킹
heic
백준
삼성 금융아카데미
파이썬
컬럼별칭
그래프
Python
Javascript
그래프탐색
MST
웹동아리
누적합
다이나믹프로그래밍
최소스패닝트리
BFS
Dijkstra
React.js
투포인터
StarRating
DFS
PCCP
mysql
hELLO· Designed By정상우.v4.5.3
__narrrrrmm
[백준12851] / 숨바꼭질 2 - BFS
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.