๐ ํ๋ก๊ทธ๋๋จธ์ค Level.2
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ฉ๐ปโ๐ป ๋ด๊ฐ ํผ ํ์ด
def solution(n):
ans = 0
if n == 0:
ans+= 0
while(n>0):
if n%2 == 0:
# print('n is even',n,ans)
n=int(n/2)
else:
# print('n is odd',n,ans)
n=int((n-1)/2)
ans+=1
return ans
top down์ผ๋ก ํ์ด์ผ ๋ ๋น ๋ฅผ๊ฒ๊ฐ์์ ์์์๋ถํฐ 2๋ก ๋๋์ด ์ฃผ๋ฉด์ ์์ํ๋ค..
์ด๋ ต์ง ์์ ๋ฌธ์ ์ด์ง๋ง ์ฌ๋ฆฌ๋ ์ด์ ๋!!
๐ ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋
def solution(n):
return bin(n).count('1')
์ฃผ์ด์ง ์ซ์๊ฐ 2์ ์ ๊ณฑ์ด๋ผ๋ฉด ์ฒ์์ 0์์ 1๋ก ์ด๋ํ๋ +1์ ์ ์ธํ๊ณ ๋ ์๊ฐ์ด๋์ผ๋ก ์ด๋์ด ๊ฐ๋ฅํ๋ค.
์ด๋ฅผ ์ด์ง์๋ก ๋ํ๋ด๋ฉด 2๋ 10, 4๋ 100 ์ฆ, 1์ ๊ฐ์๋งํผ ์ ํ๋ฅผ ํด์ผํ๋๊ฒ...?
n์ ์ด์ง์๋ฅด ๋ง๋ค๊ณ ๊ทธ ์ด์ง์์ 1์ ๊ฐ์๊ฐ ๋ฐ๋ก ์ ํ๋ฅผ ํ ์ซ์๋ผ๊ณ ํ๋ค.
'Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค lvl.2] ํผ๋ณด๋์น ์ - python (0) | 2023.10.19 |
---|