[Swift - ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [3์ฐจ] n์ง„์ˆ˜ ๊ฒŒ์ž„

2021. 5. 27. 00:41ใ†๐Ÿง‘๐Ÿป‍๐Ÿ’ป iOS ๊ฐœ๋ฐœ/Swift - Algorithm - Solutions

๐Ÿ•ต๐Ÿป  ๋ฌธ์ œ ํ•ด์„


N์ง„์ˆ˜ ๊ฒŒ์ž„์€ ์‚ผ์œก๊ตฌ์ฒ˜๋Ÿผ ์‚ฌ๋žŒ๋“ค์ด ๋Œ์•„๊ฐ€๋ฉฐ ์ˆซ์ž๋ฅผ ์™ธ์น˜๋Š” ๊ฒŒ์ž„์ธ๋ฐ, ์กฐ๊ธˆ์€ ๋‹ค๋ฅด๊ฒŒ 0๋ถ€ํ„ฐ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆซ์ž๋ฅผ N์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ž์‹ ์˜ ์ฐจ๋ก€์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž๋ฅผ ์™ธ์น˜๋Š” ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค. ์ •๋ง ์ด๋Ÿฐ ๊ฒŒ์ž„์„ ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ์„๊นŒ์š”?.. ๐Ÿ˜จ

๋ฌดํŠผ n์ง„๋ฒ•, ๋ฏธ๋ฆฌ ์ž์‹ ์˜ ์ฐจ๋ก€์— ์™ธ์ณ์•ผํ•  ์ˆ˜๋“ค์„ ๊ตฌํ•ด์•ผ ํ•  ๊ฐœ์ˆ˜ t, ๊ฒŒ์ž„์˜ ์ด ์ธ์›์ˆ˜ m, ๊ทธ๋ฆฌ๊ณ  ์ž์‹ ์˜ ์ฐจ๋ก€ p๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ์ž์‹ ์˜ ์ฐจ๋ก€์— ๋งž๋Š” t๊ฐœ์˜ ์ˆ˜๋“ค์„ ๋ฏธ๋ฆฌ ๊ตฌํ•ด ๊ณต๋ฐฑ์ด ์—†๋Š” ๋ฌธ์ž์—ด๋กœ ๋ฆฌํ„ดํ•˜๋Š” ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

์Šค์œ„ํ”„ํŠธ์—๋Š” ์ฃผ์–ด์ง„ ๊ฐ’์„ ์ž„์˜์˜ ์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๊ฐ„ํŽธํ•˜๊ณ ๋„ ๊ฐ•๋ ฅํ•œ String ์ƒ์„ฑ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ 16์ง„๋ฒ•์ฒ˜๋Ÿผ ๋ฌธ์ž๊ฐ€ ๋“ฑ์žฅํ•˜๋Š” ๊ฒฝ์šฐ์— uppercase ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ true๋กœ ํ•ด์ฃผ๋ฉด, ๊ทธ ๊ฐ’์„ ๋Œ€๋ฌธ์ž๋กœ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐ’์€ ์†Œ๋ฌธ์ž๋กœ false๋กœ ๋ช…์‹œํ•ด์ฃผ๋ฉด ์†Œ๋ฌธ์ž๋กœ ๋ฆฌํ„ดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“ฆ  ๋ฌธ์ œ ํ’€์ด & ์ฝ”๋“œ


func solution(_ n:Int, _ t:Int, _ m: Int, _ p:Int) -> String {
    var answer = ""
    var turnCounter = 1
    var integer = 0
    
    // t๊ฐœ๋ฅผ ๊ตฌํ• ๋•Œ ๊นŒ์ง€ ๋ฐ˜๋ณต
    
    while answer.count < t {
    
    	// integer๋ฅผ n์ง„์ˆ˜๋กœ ๋ณ€ํ™˜
        
        let convertedByBaseN = String(integer, radix: n, uppercase: true)
        
        // ๋ณ€ํ™˜๋œ integer๋ฅผ ์ˆซ์ž ํ•˜๋‚˜ ํ•˜๋‚˜์”ฉ ํƒ์ƒ‰ํ•˜๋ฉฐ ์ฐจ๋ก€๊ฐ€ ๋งž์œผ๋ฉด ์ •๋‹ต์— ์ถ”๊ฐ€
        
        for number in convertedByBaseN {
            if turn == p {
                answer += String(number)
            }
            
            // m๋ฒˆ์งธ์— ๋„๋‹ฌํ•˜๋ฉด ์นด์šดํ„ฐ ์ดˆ๊ธฐํ™”
            
            if turnCounter == m {
                turnCounter = 0
            }
            // t๊ฐœ๋ฅผ ๊ตฌํ•˜๋ฉด break
            if answer.count == t {
                break
            }
            
            // ์ฐจ๋ก€ ์ฆ๊ฐ€
            turnCounter += 1
        }
        // ๋‹ค์Œ integer
        integer += 1
    }
    return answer
}