코딩테스트
[프로그래머스] 삼진법 뒤집기 자바
mhui123
2025. 4. 4. 22:32
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/68935
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
주어진 n을 삼진수로 만든 후 뒤집어서 다시 십진수로 변환한 값을 구하여라.
접근
n % 3 값들을 차례대로 String으로 붙이면 뒤집어진 삼진수가 된다.
이를 다시 십진수로 바꾸려면 각 자리수 값 * 3^제곱하여 변환한다.
public static int solution(int n) {
if(n == 0) return 0;
StringBuilder reversedTernary = new StringBuilder();
int answer = 0;
while(n > 0){
int remain = n % 3;
// ternary.insert(0, remain); //0번 위치에 삽입
reversedTernary.append(remain);
n /= 3;
}
for(int i = reversedTernary.length() -1; i >= 0; i--){
int d = Character.getNumericValue(reversedTernary.charAt(i));
int p = reversedTernary.length() -1 - i;
answer += (int) (d * Math.pow(3, p));
}
return answer;
}
알게된 것
1. StringBuilder s.insert(index, 값) : index위치에 값 삽입
2. Character.getNumericValue(char) : char to int
3. 십진수 -> 삼진수 : n % 3 한 값들의 연속. while(n > 0)
4. 삼진수 -> 십진수 : 각 자리수 값 * 3 ^ 자리위치
5. Math.pow(x, v) : x의 v승
반응형