안녕하세요. 이번에는 프로그래머스 3진법 뒤집기 문제를 풀어보려고 합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/68935
Problem
자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해 주세요.
[제한 사항]
○ n은 1 이상 100,000,000 이하인 자연수입니다.
Solution
class Solution {
fun solution(n: Int): Int {
var str: String = ""
var copyN: Int = n
while(copyN > 0) {
str += copyN % 3
copyN /= 3
}
return str.toInt(3)
}
}
이번 문제는 while문을 사용해서 문제를 풀어보았습니다. 3으로 나눈 나머지를 str에 저장하여 toInt(3)을 활용해서 3진법을 10진법으로 나타냈습니다.
1. 다른 사람 코드
class Solution {
fun solution(n: Int): Int {
return n.toString(3).reversed().toInt(3)
}
}
저의 코드와 다르게 1줄로 작성된 코드가 있어서 공부용으로 가져왔습니다. 코드를 한번 분석해 보겠습니다.
코드 분석
1. toString(3)을 통해서 3진법으로 만들어줍니다.
2. reversed()을 사용해서 3진법을 앞뒤 반전을 시켜줍니다.
3. toInt(3)을 사용해서 3진법을 10진법으로 만들어줍니다.
Performance
1. 내가 작성한 코드 | 2. 다른 사람 코드 |
|
반응형
'프로그래머스 Algorithm' 카테고리의 다른 글
[프로그래머스] 크기가 작은 부분 문자열 Kotlin (2) | 2023.12.06 |
---|---|
[프로그래머스] 이상한 문자 만들기 Kotlin (4) | 2023.12.05 |
[프로그래머스] 이진 변환 반복하기 Kotlin (2) | 2023.12.03 |
[프로그래머스] 최대공약수와 최소공배수 Kotlin (0) | 2023.12.02 |
[프로그래머스] JadenCase 문자열 만들기 Kotlin (0) | 2023.12.01 |