반응형
문제 출처 :
https://www.acmicpc.net/problem/16953
알고리즘 분석 :
문제 해결에 필요한 사항
1. BFS
BFS에서 *2, * 10 + 1을 계속 큐에 넣어주며 진행하면 답을 구할 수 있다.
소스 코드 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import queue n, m = [int(x) for x in input().split()] q = queue.Queue() q.put([n,0]) while(not q.empty()): here, cnt = q.get() if here == m: print(cnt + 1) exit(0) if here * 2 <= m: q.put([here * 2, cnt + 1]) if here * 10 + 1 <= m: q.put([here * 10 + 1, cnt + 1]) print(-1) | cs |
반응형
'Applied > 알고리즘 문제풀이' 카테고리의 다른 글
[4248번] 유사 증가 수열 (0) | 2019.03.08 |
---|---|
[16646번] 콘서트 (0) | 2019.03.07 |
[16956번] 늑대와 양 (0) | 2019.03.03 |
[16234번] 인구 이동 (4) | 2018.10.22 |
[16235번] 나무 재테크 (0) | 2018.10.22 |