자연수 n이 주어졌을 때,
n을 3진법으로 변환하고,
3진법 숫자를 뒤집은 뒤,
그 결과를 다시 10진법으로 변환해서
리턴하는 함수를 작성해야 합니다.
n은 1 이상 100,000,000 이하인 자연수입니다.
이 문제는 다음 3단계를 이해하면 쉽게 풀 수 있습니다:
✅ 1. 10진법 → 3진법
Kotlin에서 n.toString(3)을 사용하면 간단하게 3진법 문자열로 바꿀 수 있습니다.
✅ 2. 문자열 뒤집기
reversed()를 사용해서 문자열을 뒤집으면 됩니다.
✅ 3. 3진법 문자열 → 10진법
문자열.toInt(3)으로 3진법 문자열을 다시 10진수로 변환할 수 있습니다.
✏️ 예제 풀이
예제 1)
text
복사
편집
입력: 45
3진법으로 변환 → 1200
문자열 뒤집기 → 0021
10진법으로 변환 → 7
예제 2)
text
복사
편집
입력: 125
3진법으로 변환 → 11122
문자열 뒤집기 → 22111
10진법으로 변환 → 229
✅ 최종 코드 (Kotlin)
kotlin
복사
편집
class Solution {
fun solution(n: Int): Int {
val reversedBase3 = n.toString(3).reversed()
return reversedBase3.toInt(3)
}
}
📚 참고: 진법 변환 요약
목적 Kotlin 코드
10진수 → 3진법 문자열 n.toString(3)
3진법 문자열 → 10진수 "22111".toInt(3)
문자열 뒤집기 "abc".reversed()
💬 마무리
이 문제는 Kotlin의 내장 함수만 잘 사용하면 한 줄로도 풀 수 있는 깔끔한 문제입니다.
진법 변환 로직을 직접 구현할 수도 있지만, 코딩테스트에서는 내장함수를 적극 활용하는 것도 전략입니다 💡