티스토리 뷰

programmers.co.kr/learn/courses/30/lessons/68935

나의 풀이

import Foundation

func solution(_ n:Int) -> Int {
    
    var newN: String = String(n, radix: 3)
    
    newN = String(newN.reversed()[0..<newN.reversed().count])
    
    while newN.hasPrefix("0") {
        newN.removeFirst()
    }
    
    let decimal: Int = Int(newN, radix: 3)!
    
    return decimal
}

신규 아이디 추천에서 문자열 쓰는걸 배워서 적용해봄

하지만 출제 의도와 맞지 않는 것 같음

 

수정한 풀이

import Foundation

func solution(_ n:Int) -> Int {
    
    var num = n
    var nArray: [Int] = []
    
    while num > 0 {
        nArray.append(num % 3)
        num /= 3
    }
    
    var power: Int = 1
    var ans: Int = 0
    for n in nArray.reversed() {
        ans += n * power
        power *= 3
    }
    
    return ans
}

 

 

다른 사람의 풀이

import Foundation

  func solution(_ n:Int) -> Int {
        let flipToThree = String(n,radix: 3)
        let answer = Int(String(flipToThree.reversed()),radix:3)!
        return answer
}

배울 점

1. 중간 과정 안해도 됨

 

 

댓글
공지사항