아이디어
주어지는 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)!
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스 스위프트] 멀리 뛰기 (0) | 2022.09.12 |
---|---|
[프로그래머스 스위프트] 약수의 개수와 덧셈 (0) | 2022.08.30 |
[프로그래머스 스위프트] 소수찾기 (0) | 2022.08.30 |
[프로그래머스 스위프트] 문자열 내 p와 y의 개수 (0) | 2022.08.26 |
[프로그래머스 스위프트] 문자열 내림차순으로 배치하기 (0) | 2022.08.26 |