ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ ํ”„์™€ ์ˆœ๊ฐ„ ์ด๋™(Swift)

2022. 10. 11. 11:18ใ†ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค-Swift

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ ํ”„์™€ ์ˆœ๊ฐ„ ์ด๋™(Swift)

 

 

 ๋ฌธ์ œ ์„ค๋ช…

 

https://school.programmers.co.kr/learn/courses/30/lessons/12980

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

 ๋‚˜์˜ ํ’€์ด

 

์–ด๋””์„ ๊ฐ€ ํ’€์–ด ๋ณธ ์œ ํ˜•์ด์ง€๋งŒ ๊ฒฐ๊ตญ ํ’€์ง€๋ชปํ•ด์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ดค๋‹ค.

์ˆซ์ž์˜ ๋ฒ”์œ„๊ฐ€ 10์–ต์ด๋‹ˆ for๋ฌธ๋„ dp๋ฌธ์ œ๋„ ์•„๋‹Œ ๊ฒƒ์„ ๋นจ๋ฆฌ ์•Œ๊ณ  ์ด ๋ฌธ์ œ๋Š” ์ ˆ๋ฐ˜์”ฉ ์—†์• ๋Š” ๋ฌธ์ œ๋ผ๋Š” ๊ฑธ ์ง๊ฐํ–ˆ์–ด์•ผ ํ–ˆ๋‹ค.

 

n์„ ๊ฑฐ๊พธ๋กœ ๊ฐ์†Œ์‹œํ‚ค๋ฉด์„œ ์ง„ํ–‰๋˜๋Š”๋ฐ n์ด ํ™€์ˆ˜์ผ๋•Œ๋Š” 1์„ ๋นผ์ฃผ๊ณ  ์ง์ˆ˜์ผ๋•Œ๋Š” ์ˆœ๊ฐ„์ด๋™(2๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ)์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

์•ž์—์„œ ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•ด์„œ n๊นŒ์ง€ ์–ด๋–ค ๊ทœ์น™์œผ๋กœ ์ˆœ๊ฐ„์ด๋™์„ ํ•ด์•ผํ• ๊นŒ ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๋’ค์—์„œ ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๋‹ˆ ํ™€์ˆ˜๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ 2๋ฐฐํ•ด์„œ ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๊ฑธ ์•Œ๊ฒŒ ๋๋‹ค. 

 

import Foundation

func solution(_ n:Int) -> Int 
{
    var ans: Int = 0
    var a = n
    
    while a > 0 {
        ans += a % 2
        a = (a % 2 == 0) ? a / 2 : a-1
    }

    return ans
}

 

 

 ํ”ผ๋“œ๋ฐฑ

 

ans += a % 2๋ฅผ ํ†ตํ•ด์„œ ํ™€์ˆ˜๋งŒ 1์„ ๋นผ์ค€ ๊ฒƒ์„ ๋‹ด์„ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

๋ฌธ์ œ๋ฅผ ๊ฑฐ๊พธ๋กœ ์ƒ๊ฐํ•˜๋Š” ๋Šฅ๋ ฅ๊ณผ ์ˆซ์ž์˜ ๋ฒ”์œ„๊ฐ€ ํด ๋•Œ ์ด๋ถ„ํƒ์ƒ‰ ๋ฌธ์ œ์ž„์„ ๋น ๋ฅด๊ฒŒ ์ธ์ง€ํ•˜๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๋‹ค.