๋ฐฑ์ค (boj) ํ์ด์ฌ - 1094 ๋ง๋๊ธฐ
๋ฌธ์ ๋งํฌ : https://www.acmicpc.net/problem/1094
1094๋ฒ: ๋ง๋๊ธฐ
์ง๋ฏผ์ด๋ ๊ธธ์ด๊ฐ 64cm์ธ ๋ง๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ด๋ ๋ , ๊ทธ๋ ๊ธธ์ด๊ฐ Xcm์ธ ๋ง๋๊ฐ ๊ฐ์ง๊ณ ์ถ์ด์ก๋ค. ์ง๋ฏผ์ด๋ ์๋ ๊ฐ์ง๊ณ ์๋ ๋ง๋๋ฅผ ๋ ์์ ๋ง๋๋ก ์๋ฅธ๋ค์์, ํ๋ก ๋ถ์ฌ์ ๊ธธ์ด๊ฐ Xcm์ธ ๋ง๋๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ค. ๋ง๋๋ฅผ ์๋ฅด๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ์ ๋ฐ์ผ๋ก ์๋ฅด๋ ๊ฒ์ด๋ค. ์ง๋ฏผ์ด๋ ์๋์ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์ณ์ ๋ง๋๋ฅผ ์๋ฅด๋ ค๊ณ ํ๋ค. ์ง๋ฏผ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ง๋์ ๊ธธ์ด๋ฅผ ๋ชจ๋ ๋ํ๋ค. ์ฒ์์๋ 64cm ๋ง๋ ํ๋๋ง ๊ฐ์ง๊ณ ์๋ค. ์ด๋, ํฉ์ด X๋ณด๋ค ํฌ๋ค๋ฉด,
www.acmicpc.net
๋ญ๊ฐ ์๊ฐ ๋ชปํ ๋ฐ๋ก๊ฐ ์์๊ฑฐ๋ผ๋ ๋๋์ด ์์์ง๋ง, ์์๋ค. ๋ฌธ์ ๊ทธ๋๋ก ๊ตฌํ๋ง ํ๋ฉด ์ ๋ต์ด์๋ค.
64๋ฅผ ๋ฐ์ผ๋ก ์๋ฅด๊ณ ์๋ผ์, ์ฃผ์ด์ง x๊ธธ์ด๋ฅผ ๋ง๋๋ ค๋ฉด, ๋ช๊ฐ๋ฅผ ์ด์ด๋ถ์ด์ผ ํ๋๊ฐ์๋ค.
์์๋ถํฐ 64์ ์ฝ์๋ค์ list ์์ ๋ฃ์ด๋๊ณ , x๋ณด๋ค ์์ ์์๋ค์ ๋นผ๊ฐ๋ฉด์ ์นด์ดํ ํ๋์์ผ๋ก ์ฝ๋ฉํ๋ค.
x = int(input())
arr = [64]; temp =64; cnt = 0
for i in range(6): #64๋ค์ ์ฝ์๋ค์ ๊ตฌํ๋ for๋ฌธ
temp//=2
arr.append(temp)
if x in arr : #arr ์์ ์๋ ์๊ฐ x๋ผ๋ฉด, ์ด์ด๋ถ์ผ ํ์์์ด 1์ ์ถ๋ ฅ.
print(1)
else :
for q in arr : #arr์ ํฐ ์์๋ถํฐ ๋ถ์ด๋ ์์ผ๋ก, for๋ฌธ ์์ฑ
if x >= q :
x -= q
cnt +=1
print(cnt)