[๋ฐฑ์ค] 1094๋ฒ - ๋ง๋๊ธฐ (python)
1094๋ฒ: ๋ง๋๊ธฐ
์ง๋ฏผ์ด๋ ๊ธธ์ด๊ฐ 64cm์ธ ๋ง๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ด๋ ๋ , ๊ทธ๋ ๊ธธ์ด๊ฐ Xcm์ธ ๋ง๋๊ฐ ๊ฐ์ง๊ณ ์ถ์ด์ก๋ค. ์ง๋ฏผ์ด๋ ์๋ ๊ฐ์ง๊ณ ์๋ ๋ง๋๋ฅผ ๋ ์์ ๋ง๋๋ก ์๋ฅธ๋ค์์, ํ๋ก ๋ถ์ฌ์ ๊ธธ์ด๊ฐ Xcm์ธ ๋ง๋
www.acmicpc.net
๋ฌธ์
์ง๋ฏผ์ด๋ ๊ธธ์ด๊ฐ 64cm์ธ ๋ง๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ด๋ ๋ , ๊ทธ๋ ๊ธธ์ด๊ฐ Xcm์ธ ๋ง๋๊ฐ ๊ฐ์ง๊ณ ์ถ์ด์ก๋ค. ์ง๋ฏผ์ด๋ ์๋ ๊ฐ์ง๊ณ ์๋ ๋ง๋๋ฅผ ๋ ์์ ๋ง๋๋ก ์๋ฅธ๋ค์์, ํ๋ก ๋ถ์ฌ์ ๊ธธ์ด๊ฐ Xcm์ธ ๋ง๋๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ค.
๋ง๋๋ฅผ ์๋ฅด๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ์ ๋ฐ์ผ๋ก ์๋ฅด๋ ๊ฒ์ด๋ค. ์ง๋ฏผ์ด๋ ์๋์ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์ณ์ ๋ง๋๋ฅผ ์๋ฅด๋ ค๊ณ ํ๋ค.
- ์ง๋ฏผ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ง๋์ ๊ธธ์ด๋ฅผ ๋ชจ๋ ๋ํ๋ค. ์ฒ์์๋ 64cm ๋ง๋ ํ๋๋ง ๊ฐ์ง๊ณ ์๋ค. ์ด๋, ํฉ์ด X๋ณด๋ค ํฌ๋ค๋ฉด, ์๋์ ๊ฐ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
- ๊ฐ์ง๊ณ ์๋ ๋ง๋ ์ค ๊ธธ์ด๊ฐ ๊ฐ์ฅ ์งง์ ๊ฒ์ ์ ๋ฐ์ผ๋ก ์๋ฅธ๋ค.
- ๋ง์ฝ, ์์์ ์๋ฅธ ๋ง๋์ ์ ๋ฐ ์ค ํ๋๋ฅผ ๋ฒ๋ฆฌ๊ณ ๋จ์์๋ ๋ง๋์ ๊ธธ์ด์ ํฉ์ด X๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๋ค๋ฉด, ์์์ ์๋ฅธ ๋ง๋์ ์ ๋ฐ ์ค ํ๋๋ฅผ ๋ฒ๋ฆฐ๋ค.
- ์ด์ , ๋จ์์๋ ๋ชจ๋ ๋ง๋๋ฅผ ํ๋ก ๋ถ์ฌ์ Xcm๋ฅผ ๋ง๋ ๋ค.
X๊ฐ ์ฃผ์ด์ก์ ๋, ์์ ๊ณผ์ ์ ๊ฑฐ์น๋ค๋ฉด, ๋ช ๊ฐ์ ๋ง๋๋ฅผ ํ๋ก ๋ถ์ฌ์ Xcm๋ฅผ ๋ง๋ค ์ ์๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ X๊ฐ ์ฃผ์ด์ง๋ค. X๋ 64๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
์ถ๋ ฅ
๋ฌธ์ ์ ๊ณผ์ ์ ๊ฑฐ์น๋ค๋ฉด, ๋ช ๊ฐ์ ๋ง๋๋ฅผ ํ๋ก ๋ถ์ฌ์ Xcm๋ฅผ ๋ง๋ค ์ ์๋์ง ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1 ๋ณต์ฌ
23
์์ ์ถ๋ ฅ 1 ๋ณต์ฌ
4
์์ ์ ๋ ฅ 2 ๋ณต์ฌ
32
์์ ์ถ๋ ฅ 2 ๋ณต์ฌ
1
์์ ์ ๋ ฅ 3 ๋ณต์ฌ
64
์์ ์ถ๋ ฅ 3 ๋ณต์ฌ
1
์์ ์ ๋ ฅ 4 ๋ณต์ฌ
48
์์ ์ถ๋ ฅ 4 ๋ณต์ฌ
2
ํ์ด๊ณผ์
๋ฌธ์ ๊ฐ ์ด๋ ต๊ฒ ์ ํ์๋๊ฑด์ง ์ ๊ฐ ์ดํดํ๊ธฐ๊ฐ ์ด๋ ค์ด๊ฑด์ง ๋ฌธ์ ํด์์ ํ๋๋ฐ์ ์์ด์ ์ค๋์๊ฐ์ด ๊ฑธ๋ ธ์๋๊ฑฐ๊ฐ์ต๋๋ค.
๊ฐ๋จํ๊ฒ๋๋ง ์ ๋ฆฌ๋ฅผ ํ์๋ง
"64cm ๋ง๋๊ธฐ๋ฅผ ๊ณ์ 1/2์ฉ ์งค๋ผ๊ฐ๋ฉด์ ( 64, 32, 16, 8, 4, 2, 1 ) ์ ๋ ฅ๊ฐ์ผ๋ก ๋ค์ด์จ ๋ง๋๊ธฐ์ ๊ธธ์ด๋งํผ
์๋ผ์ง๋ง๋๊ธฐ๋ฅผ ๋ถ์ฌ์ ๋ง๋ค๋ ค๋ฉด ๋ช๊ฐ์ ๋ง๋๊ธฐ๊ฐ ํ์ํ๊ฐ?" ๋ผ๋ ๋ฌธ์ ์์์ต๋๋ค.
์ ๋ ฅ๊ฐ๊ณผ ์ถ๋ ฅ๊ฐ์ ํด์ํด๋ณด์๋ฉด
23 = 16 + 4 + 2 + 1
32 = 32
64 = 64
48 = 32 + 16
์์๊ฐ์ ํ์์ผ๋ก ๋์จ ๋ง๋๊ธฐ์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ฉด ๋๋ ๋ฌธ์ ์์์ต๋๋ค.
code
x = int(input())
count = 0
n = 64
while x > 0:
if n > x:
n = n // 2
else:
count += 1
x -= n
print(count)
ํ๊ธฐ์ฐ
๋ฌธ์ ๋ฅผ ํด์ํ๋๋ฐ์๋ ์ด๋ ค์ ์์ง๋ง ํ์ด์ ๊ฒฝ์ฐ X์ ๊ฐ๋ณด๋ค ํ์ฌ๊ฐ์ด ๋ ์๋ค๋ฉด
๊ทธ๋ฅ ๋นผ๋ ํ์์ผ๋ก ์งํํ๊ณ ๊ฐ์๋ง ์นด์ดํธํด๋๋์ ํฌ๊ฒ ์๊ณ ๋ฆฌ์ฆ์ ์ผ๋ก ์ด๋ ค์ด ๋ฌธ์ ๋ ์๋์๋๊ฑฐ๊ฐ์์.