문제
3진법 뒤집기
문제파악하기
n
을 0이 될 때 까지 나누어 문자열로 반환하면 뒤집히니 3진법 수가 나온다.
- 이를 다시 10진법으로 변경해주면 된다.
풀이
import Foundation
func solution(_ n:Int) -> Int {
var n = n
var reversedRadix = ""
while (n != 0) {
reversedRadix.append(String(n % 3))
n = n / 3
}
let answer = Int(reversedRadix, radix: 3)!
return answer
}
🤔 FEEDBACK
radix
함수를 모르면 풀 수 없는 문제
Int(reversedRadix, radix: 3)!
이게 다시 10진법으로 바꿔주는 건지 처음알았다.
- 진법 문제가 왜 출제되고 중요한지를 파악해 볼 필요가 있는 것 같다.
다른 풀이
import Foundation
func solution(_ n:Int) -> Int {
let flipToThree = String(n,radix: 3)
let answer = Int(String(flipToThree.reversed()),radix:3)!
return answer
}
Reference