[baekjoon]python #1697 ์จ๋ฐ๊ผญ์ง
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
input = sys.stdin.readline
subin,sis = map(int,input().split())
queue = deque()
queue.append((subin,0))
#๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ ๋ฐฉ์ง
visit = [0] * 100001
while queue:
now_subin,sec = queue.popleft()
visit[now_subin] = 1
if now_subin == sis:
print(sec)
break
direct = [-1,1,2]
for i in range(3):
if direct[i] == 2:
direct_subin = now_subin * direct[i]
else:
direct_subin = now_subin + direct[i]
if 0<=direct_subin<=100000:
if visit[direct_subin] == 0:
queue.append((direct_subin,sec+1))
์ฒ์์๋ ๋ฒ์๋ฅผ ์ง์ ํด์ฃผ์ง ์์์ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ ๋ฌ๋ค.
๊ทธ๋์ ๋ฒ์๋ฅผ ์ง์ ํ์ง๋ง ์ญ์๋ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ ๋ฌ๊ณ , visit๋ฐฐ์ด์ ํตํด ์ค๋ณต๋๋ ๊ฐ๋ค์ ์ ๊ฑฐํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ์๋ค.
'Problem Solving > BAEKJOON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[baekjoon]python #5014 ์คํํธ ๋งํฌ (0) | 2023.01.26 |
---|---|
[baekjoon]python #2178 ๋ฏธ๋กํ์ (0) | 2023.01.25 |
[baekjoon]python #2667 ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ (0) | 2023.01.25 |
[baekjoon]python #5635 ์์ผ (0) | 2023.01.20 |
[baekjoon]python #1764 ๋ฃ๋ณด์ก (0) | 2023.01.11 |
๋๊ธ