[BOJ][๐ก3][๋ฐฑ์ค#01341] ์ฌ์ด์ข์ ํ์
์์ฑ:    
์ ๋ฐ์ดํธ:
์นดํ ๊ณ ๋ฆฌ: BOJ Gold III
๋ฌธ์ ์ถ์ฒ
๋ฌธ์
์์์ด์ ๋ฏผ์์ด๋ ์ผ์ดํฌ๋ฅผ ๋๋์ด ๋จน์ผ๋ ค๊ณ ํ๋ค. ์ผ๋จ ์์์ด๊ฐ ์ ๋ฐ์ ๋จน๊ณ , ๋ฏผ์์ด๊ฐ ๋จ์ ์ ๋ฐ์ ๋จน๋๋ค. ๋ ๊ณ์ ์ด๋ ๊ฒ ์ ๋ฐ์ ๋จน๊ณ ํ๋ค. ์ด๋ ๊ฒ ๋ฌดํ๋ฒ ํ๊ณ ๋๋ฉด ๊ฒฐ๊ตญ ์ผ์ดํฌ๋ฅผ ๋ค ๋จน๊ฒ ๋๋ค. ํ๋ก ๋ง๋ค์ด ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์์ ๋ฏผ์
1/2 1/4
1/8 1/16
1/32 1/64
1/128 1/256
โฆ โฆ
์์ ๊ฐ์ด ๋จน๊ฒ ๋๋ฉด ์์์ด๋ ํญ์ ๋ฏผ์์ด์ ๋ ๋ฐฐ๋ฅผ ๋จน๊ฒ ๋๋ฏ๋ก ์ผ์ดํฌ์ 2/3์ ๋จน๊ฒ ๋๊ณ , ๋ฏผ์์ด๋ 1/3์ ๋จน๊ฒ ๋๋ค. ์ผ์ดํฌ๋ฅผ ์ฌ๋ฏธ์๊ฒ ๋จน๊ธฐ ์ํด์ ์ฌ๋ฌ ๊ฐ์ง ํจํด์ ๋ง๋ค๊ธฐ๋ก ํ๋ค. ๊ทธ๋ ๊ฒ ๋๋ฉด ์์์ด๊ฐ ๋จน๊ฒ๋๋ ์ผ์ดํฌ๋ ๋ฌ๋ผ์ง๊ฒ ๋๋ค. ๋ง์ฝ โ์์,๋ฏผ์,์์โ๊ณผ ๊ฐ์ด ๋จน๊ฒ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋จน๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด ์์์ด๋ 5/7์ ๋จน๊ฒ ๋๋ค. ์์์ด๊ฐ ๋จน๊ฒ๋๋ ์ผ์ดํฌ์ ์์ด ๋ถ์๋ก ์ฃผ์ด์ง๋ค. ๊ทธ๋, ํจํด์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์์ ๋ฏผ์ ์์
1/2 1/4 1/8
1/16 1/32 1/64
1/128 1/256 1/512
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋ ์ ์ a์ b๊ฐ ์ฃผ์ด์ง๋ค. a์ b๋ a/b์์ ๋ถ์์ ๋ถ๋ชจ๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๋จน๋ ํจํด์ ์ถ๋ ฅํ๋ค. ํจํด์ ์์์ *๋ก, ๋ฏผ์์ -๋ก ์ถ๋ ฅํ๋ค. ๋ง์ฝ, ํจํด์ ๊ธธ์ด๊ฐ 60 ์ดํ์ธ ๊ฒ์ด ์์ผ๋ฉด -1์ ์ถ๋ ฅํ๋ค.ย ๊ฐ๋ฅํ ํจํด์ด ์ฌ๋ฌ ๊ฐ์ง์ด๋ฉด ์งง์ ๊ฒ์ ์ถ๋ ฅํ๋ค.
์ ํ
0 โค a โค b โค 263-1 a์ b๋ ์๋ก์
์์
์์ 1
์ ๋ ฅ
2 3
์ถ๋ ฅ
*-
์์ 2
์ ๋ ฅ
5 7
์ถ๋ ฅ
*-*
์์ 3
์ ๋ ฅ
0 1
์ถ๋ ฅ
-
์์ 4
์ ๋ ฅ
5 9
์ถ๋ ฅ
*---**
์์ 5
์ ๋ ฅ
1 2
์ถ๋ ฅ
-1
์์ 6
์ ๋ ฅ
76861433640456464 76861433640456465
์ถ๋ ฅ
********************************************************----
My Sol
def make_mothers():
global MAXX
mothers = []
n = 2
while n < MAXX:
mothers.append(n - 1)
n *= 2
return mothers
def make_ab(mothers):
global MAXX
a, m = map(int, input().split())
for mother in mothers:
if not mother%m:
sq = mother//m
aa = a*sq
bb = mother - aa
return aa, bb
return 0
def is_odd(n):
return n%2
def main():
mothers = make_mothers()
ret = make_ab(mothers)
if not ret: return -1
a, b = ret
ans = ''
while a or b:
if a and is_odd(a):
if is_odd(b): return -1
ans = '*' + ans
a-=1
elif b and is_odd(b):
if is_odd(a): return -1
ans = '-' + ans
b-=1
else: return -1
a, b = a//2, b//2
return ans if len(ans) <= 60 else -1
MAXX = 2**65
print(main())
๊น๋ค๋ก์ด ๋ฌธ์ ์๋ค.
- ์๋ก์๋ก ๋ง๋ค์ด์ฃผ๊ธฐ ์ํ ๋๋๊ธฐ ์ด์ ์ ๋ถ๋ชจ์ ๊ฒฝ์ฐ
2**n-1
์ ํํ์ด๋ค. ์ด๋ฅผmothers
์ ์ฐจ๋ก๋๋ก ๋ฃ๋๋ค. - ์
๋ ฅ์ผ๋ก a์ m์ ๋ฐ๊ณ , m์ด mothers ๋ด์ ๋จ์ด์ง๋ ๊ฐ์ฅ ์์ ์
mother
๋ฅผ ์ฐพ๋๋ค. ํด๋นmother
์ ๋ถ๋ชจ๋ก ํ๋๋กa
์b
๋ฅผ ๊ตฌ์ฑํด ๋ฐํํ๋ค. - ์ด
a
์b
๋ ํ์ ๋๋ ์ง์๋ก ๊ต์ฐจํด์ผ ํ๋ค. ๋ง์ง๋ง์ ๋ํด์ง ์ฌ๋์ด 1์ด๊ณ ๊ทธ ์ด์ ์๋ 2์ฉ ๊ณฑํ๋ฉฐ ๋ํ๋ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๋ถ์์ ํน์ฑ์ ๋ถ๋ชจ๊ฐ 2๋ฐฐ์ฉ ์ปค์ง๋ฉด ๊ฐ์ 2๋ฐฐ์ฉ ์์์ง๋ฏ๋ก, ๋ง์ง๋ง์ 1์ ๋ํ๊ธฐ ์ํด์ ์ด์ ์ ๊ฐ๋ค์ ๋งค๋ฒ 2๋ฐฐ๋ก ๊ณฑํ๋ ๊ฒ์ด๋ค. - ์ด ์ฑ์ง์ ์ด์ฉํด ํ์์ธ ์๋ฅผ ํ๋จํ์ฌ ์ง์์ฒ๋ฆฌํ๊ณ 2๋ก ๋๋๋ฉฐ ๊ฐ์ ์์ ์ ๋ฐ๋ณตํ๋ฉด ๋๊ฐฐ๋ค. ๋ค๋ถํฐ ์ฒ๋ฆฌํ๋ ๊ฒ์ด๋ค.
๊ฒฐ๊ณผ
๋ง์์ต๋๋ค!!
๋๊ธ๋จ๊ธฐ๊ธฐ