ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์ ์ A๋ฅผ B๋ก ๋ฐ๊พธ๊ธฐ ์ํด 2๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
- A์ 2๋ฅผ ๊ณฑํ๋ค.
- A์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ 1์ ์ถ๊ฐํ๋ค.
์ด๋, B๋ก ๋ฐ๊พธ๋๋ฐ ํ์ํ ์ฐ์ฐ์ ์ต์๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ์ด๋ `DFS`๋ฅผ ํตํด `2๋ฅผ ๊ณฑํ๋ ๊ฒฝ์ฐ`์ `์ค๋ฅธ์ชฝ์ 1์ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ`์ ๋ํด ๊ฐ์ง๋ฅผ ๋ป์ด๋๊ฐ๋ฉด ์ฝ๊ฒ ๊ตฌํ ์ ์๋ค.
์ฝ๋
from sys import stdin
def dfs(sub_total, cur_depth):
# B๋ณด๋ค ํฐ ๊ฒฝ์ฐ, ๊ฐ์ง์น๊ธฐ
if sub_total > B:
return
if sub_total == B:
print(cur_depth)
exit(0)
return
# 2๋ฅผ ๊ณฑํ๋ ๊ฒฝ์ฐ
dfs(sub_total * 2, cur_depth + 1)
# ์ค๋ฅธ์ชฝ์ 1์ ๋ํ๋ ๊ฒฝ์ฐ
dfs(int(str(sub_total) + '1'), cur_depth + 1)
if __name__ == "__main__":
A, B = map(int, stdin.readline().split())
dfs(A, 1)
print(-1)
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 2141 ์ฐ์ฒด๊ตญ (0) | 2021.03.19 |
---|---|
๋ฐฑ์ค: 11000 ๊ฐ์์ค ๋ฐฐ์ (0) | 2021.03.15 |
๋ฐฑ์ค: 2800 ๊ดํธ ์ ๊ฑฐ (0) | 2021.03.12 |
๋ฐฑ์ค: 2504 ๊ดํธ์ ๊ฐ (0) | 2021.03.12 |
๋ฐฑ์ค: 2346 ํ์ ํฐ๋จ๋ฆฌ๊ธฐ (0) | 2021.03.10 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ