티스토리 뷰
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. 중간 과정 안해도 됨
'Algorithm' 카테고리의 다른 글
[Swift 알고리즘] 프로그래머스 Lv1 2016년 (0) | 2021.04.27 |
---|---|
[Swift 알고리즘] 프로그래머스 Lv1 k번째수 (0) | 2021.04.27 |
[Swift 알고리즘] 프로그래머스 Lv1 체육복 (0) | 2021.04.27 |
[Swift 알고리즘] 프로그래머스 Lv1 모의고사 (0) | 2021.04.27 |
[Swift 알고리즘] 프로그래머스 Lv1 신규 아이디 추천 (0) | 2021.04.27 |
댓글
공지사항