Coding Test

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค lvl.2] ์ ํ”„์™€ ์ˆœ๊ฐ„์ด๋™ - python

ํด๋กœ์ด๐Ÿ“ 2023. 10. 20. 17:05

๐Ÿ“‹ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 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