์ ํ์ ์๊ฐ
OO ์ฐ๊ตฌ์๋ ํ ๋ฒ์ K ์นธ์ ์์ผ๋ก ์ ํํ๊ฑฐ๋, (ํ์ฌ๊น์ง ์จ ๊ฑฐ๋ฆฌ) x 2 ์ ํด๋นํ๋ ์์น๋ก ์๊ฐ์ด๋์ ํ ์ ์๋ ํน์ํ ๊ธฐ๋ฅ์ ๊ฐ์ง ์์ด์ธ ์ํธ๋ฅผ ๊ฐ๋ฐํ์ฌ ํ๋งคํ๊ณ ์์ต๋๋ค.
์ด ์์ด์ธ ์ํธ๋ ๊ฑด์ ์ง๋ก ์๋๋๋๋ฐ, ์๊ฐ์ด๋์ ํ๋ฉด ๊ฑด์ ์ง ์ฌ์ฉ๋์ด ์ค์ง ์์ง๋ง, ์์ผ๋ก K ์นธ์ ์ ํํ๋ฉด K ๋งํผ์ ๊ฑด์ ์ง ์ฌ์ฉ๋์ด ๋ญ๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์์ด์ธ ์ํธ๋ฅผ ์ฐฉ์ฉํ๊ณ ์ด๋ํ ๋๋ ์๊ฐ ์ด๋์ ํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ ๋๋ค.
์์ด์ธ ์ํธ ๊ตฌ๋งค์๋ ์์ด์ธ ์ํธ๋ฅผ ์ฐฉ์ฉํ๊ณ ๊ฑฐ๋ฆฌ๊ฐ N ๋งํผ ๋จ์ด์ ธ ์๋ ์ฅ์๋ก ๊ฐ๋ ค๊ณ ํฉ๋๋ค.
๋จ, ๊ฑด์ ์ง ์ฌ์ฉ๋์ ์ค์ด๊ธฐ ์ํด ์ ํ๋ก ์ด๋ํ๋ ๊ฒ์ ์ต์๋ก ํ๋ ค๊ณ ํฉ๋๋ค.
์์ด์ธ ์ํธ ๊ตฌ๋งค์๊ฐ ์ด๋ํ๋ ค๋ ๊ฑฐ๋ฆฌ N์ด ์ฃผ์ด์ก์ ๋, ์ฌ์ฉํด์ผ ํ๋ ๊ฑด์ ์ง ์ฌ์ฉ๋์ ์ต์๊ฐ์ returnํ๋ solution ํจ์๋ฅผ ๋ง๋ค์ด ์ฃผ์ธ์.
ํ์ด
def solution(n):
x = 1
while 1:
if n % 2 == 0 or n == 1:
if n <= 2 : break
n = n / 2
else :
n -= 1
x += 1
return x
ํ์ด ๊ณผ์
n์ด 50์ด๋ผ๊ณ ๊ฐ์ ํ ๋
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17.... 25 26 27 28 29 30..... 41 42 43 44 45 46 47 48 49 50
50์ 25๊น์ง ๋์ฐฉ๋ง ํ๋ค๋ฉด 50๊น์ง๋ ๋ฐฐํฐ๋ฆฌ ์ฌ์ฉ์์ด ๊ฐ ์ ์๋ค.
25๋ ํ์ ์ด๋ฏ๋ก 2๋ก ๋๋์ด์ง์ง ์๋๋ค.
25์์ 1์ ๋บ 24๋ 12๊น์ง๋ง ๋์ฐฉํ๋ค๋ฉด ๋ฐฐํฐ๋ฆฌ ์ฌ์ฉ์์ด ๊ฐ ์ ์๋ค.
์ด๋ฐ ๋งฅ๋ฝ์ผ๋ก n์ ๊ณ์ 2๋ก ๋๋๊ณ ํ์๊ฐ ๋์ค๋ฉด ๋ฐฐํฐ๋ฆฌ๋ฅผ ํ๋ ์ฌ์ฉํ๋ค,
n์ -1์ ํ๊ณ ๊ฐ์ ๊ณ์ฐ ํด๋๊ฐ๋ค.
๋ฐ๋ผ์ n์ด 50์ผ๋๋
50 -> ์ง์ -> ๋ฐฐํฐ๋ฆฌ ์ฌ์ฉX
25 -> ํ์ -> ๋ฐฐํฐ๋ฆฌ ์ฌ์ฉO
12 -> ์ง์ -> ๋ฐฐํฐ๋ฆฌ ์ฌ์ฉX
6 -> ์ง์ -> ๋ฐฐํฐ๋ฆฌ ์ฌ์ฉX
3 -> ํ์ -> ๋ฐฐํฐ๋ฆฌ ์ฌ์ฉO
1 -> ์ฒ์์ ๋ฐฐํฐ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
๋ต : 3
'Developer > ๐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/python] [1์ฐจ]์บ์ (0) | 2020.07.10 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/python] ์์ถ (0) | 2020.07.08 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] ์คํ์ฑํ ๋ฐฉ (0) | 2020.07.08 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] ํ์ผ๋ช ์ ๋ ฌ (0) | 2020.07.08 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] - ์์ด ๋๋ง์๊ธฐ (0) | 2020.06.28 |