자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.
class Solution {
public int solution(int n) {
int answer = 0;
//n을 3진법으로 변환
StringBuilder sb = new StringBuilder();
while (n > 0) {
sb.append(n % 3);
n /= 3;
}
//3진법으로 변환한 n을 뒤집기
String n_reverse = sb.reverse().toString();
int power=1;
//3진법을 10진법으로 변환
for (int i = 0; i < n_reverse.length(); i++) {
int digit = n_reverse.charAt(i) - '0'; // 문자를 숫자로 변환
answer += digit * power; // 3의 제곱수로 곱한 후 누적 덧셈
power *= 3; // 3의 제곱수를 계산하기 위해 3을 곱함
}
return answer;
}
}
class Solution {
public int solution(int n) {
String a = "";
while(n > 0){
a = (n % 3) + a;
n /= 3;
}
a = new StringBuilder(a).reverse().toString();
return Integer.parseInt(a,3);
}
}
이렇게도 간단하게 풀 수 있었다...