[백준] 1697번 숨바꼭질 파이썬 코드

2023. 10. 20. 21:09· 백준

코드

from collections import deque
import sys
sys.setrecursionlimit(10**6)
input = sys.stdin.readline

subin, dongsang = map(int, input().split())
check = [0] * 100001 # 방문체크 및 이동 횟수 기록용

def bfs(x, y):
  queue = deque([x])
  while queue:
    popnum = queue.popleft()
    if popnum == y: return check[popnum] # 뽑은 숫자가 동생이 있는 곳이면 함수 종료
    for i in [popnum + 1, popnum -1, popnum*2]: # for문에 +1 이동, -1 이동, *2 이동 기록  
      if 0<=i<= 100000 and not check[i]: # i 범위를 정해주지 않으면 index error 
        check[i] = check[popnum] + 1     # 방문기록을 체크하지 않으면 메모리초과 에러가 난다
        queue.append(i) 
print(bfs(subin, dongsang))

어떻게 해결해야할지는 떠올랐는데 구현이 오래걸린 문제. 롤드컵 보느라 그런 것도 있다. 처음 내 방식으로는 x+1, x-1, 2*x를 리스트에 넣어 하나씩 뽑아서 확인하는 방식이었다. 그러다보니 이중 for문까지 동원되었다. 그런데 첫 for문에 [x+1, x-1, 2*x를 준 코드를 보고 놀랐다. 이렇게 하면 쉽게 할 수 있는데 왜 어렵게 돌아갔을까... 좀 아쉬운 부분도 있었지만 나아지면 될 일이니까. 열심히 해야겠다.

 

추가

1. 방문 체크에서 에러가 나면 메모리 초과가 난다는 사실을 알았다.

2. 이 문제에서는 왜 최대 범위를 준다는 생각을 안했을까... 0이상인 것만 체크해서 indexerror가 났었다.

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

[백준] 17087번 숨바꼭질 6 파이썬 코드  (0) 2023.10.23
[백준] 2468번 안전 영역 파이썬 코드  (0) 2023.10.23
[백준] 7562번 나이트의 이동 파이썬 코드  (0) 2023.10.20
[백준] 2178번 미로 탐색 파이썬 코드  (0) 2023.10.20
[백준] 1026번 보물 파이썬 코드  (1) 2023.10.19
'백준' 카테고리의 다른 글
  • [백준] 17087번 숨바꼭질 6 파이썬 코드
  • [백준] 2468번 안전 영역 파이썬 코드
  • [백준] 7562번 나이트의 이동 파이썬 코드
  • [백준] 2178번 미로 탐색 파이썬 코드
Melon Man
Melon Man
Hello World
Melon Man
제발 CPU는 집에서 만들어 씁시다
Melon Man
전체
오늘
어제
  • 분류 전체보기 (644)
    • 직접 만들어 보기 (2)
    • 가내공업 (2)
    • HTML (0)
    • CSS (4)
    • JAVASCRIPT (51)
    • TYPESCRIPT (14)
    • NODE.JS (19)
    • REACT (7)
    • NEXT.JS (1)
    • REACT NATIVE (5)
    • REDUX (2)
    • PYTHON (17)
    • 자료구조 및 알고리즘 (35)
    • 컴퓨터 구조 (9)
    • 운영체제 (7)
    • NETWORK (3)
    • CodeUp 기본 100제 - Python (98)
    • 잡지식 (1)
    • 백준 (347)
    • SWEA (0)
    • GIT (4)
    • C (2)
    • C++ (11)
    • JAVA (2)
    • 객체지향프로그래밍 (0)
    • 정보처리기사 (1)
    • 프로그래머스_SQL (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • node.js
  • mdn
  • event
  • 기초
  • TypeScript
  • 백준
  • 유니온 파인드
  • standard built-in object
  • 코드업
  • 운영체제
  • React
  • 자료구조
  • 알고리즘
  • 정렬
  • javascript
  • 표준내장객체
  • 입출력
  • C++
  • input
  • 함수
  • python
  • 다익스트라 알고리즘
  • BFS
  • 초보
  • CodeUp
  • 위상정렬
  • Node
  • 자바스크립트
  • 파이썬
  • 입문

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.3.0
Melon Man
[백준] 1697번 숨바꼭질 파이썬 코드
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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