ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋‹ค์Œ ํฐ ์ˆซ์ž(Swift)

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

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋‹ค์Œ ํฐ ์ˆซ์ž(Swift)

 

 

 ๋ฌธ์ œ ์„ค๋ช…

 

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

 

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

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

programmers.co.kr

 

 

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

 

radix๋ฅผ ์ด์šฉํ•ด์„œ 1์˜ ๊ฐœ์ˆ˜๋ฅผ ์นด์šดํŒ… ํ•œ ๋’ค์— ๋น„๊ตํ•ด์„œ ํ’€์—ˆ๋‹ค.

 

import Foundation

func solution(_ n:Int) -> Int
{
    var answer: Bool = true
    var val_n = n
    let nCnt = String(n, radix: 2).filter{ $0 == "1" }.count
    while answer {
        val_n += 1
        let a = String(val_n, radix: 2).filter{ $0 == "1"}.count
        if a == nCnt {
            answer = false
        }
    }
    return val_n 
}

 

 

 

 

 ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด

 

nonzeroBitCount๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ 1์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„ ์ธก๋ฉด์—์„œ๋„ ์ข‹์œผ๋‹ˆ ํ•„์š”ํ• ๋•Œ ์จ์•ผ๊ฒ ๋‹ค.

 

import Foundation

func solution(_ n:Int) -> Int
{
    var answer = n+1
    while true {
        if n.nonzeroBitCount == answer.nonzeroBitCount {
            break
        }
        answer += 1
    }
    return answer
}