Algorithm/프로그래머스
[프로그래머스 스위프트] 3진법 뒤집기
devKen
2022. 8. 30. 16:53
아이디어
주어지는 n을 3진법으로 만들고 이를 뒤집은 후 다시 10진법으로 변환시키는 로직이다. radix를 사용하면 쉽게 구현이 가능하다.
먼저 n을 3진법 String으로 만들고 이를 reversed하여 순서를 바꾸고 다시 Int로 바꾼다. 여기서 주목해야 할것은 Int형의 n을 10진법이 아닌 다른 진법 (2진법, 3진법 등)으로 바꿀 때는 String으로 형변환을 하면서 하는데 그대로 역으로 다시 10진법으로 형변환을 하고 할 경우 기존 변경된 진법을 입력하고 Int(n, radix: 3)!으로 해야한다는 것이다. Int로 형변환 할때 옵셔널로 들어가니까 강제 언래핑 하는것은 물론이다.
해답
import Foundation
func solution(_ n:Int) -> Int {
return Int(String(String(n, radix: 3).reversed()), radix: 3)!
}