자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후,
이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.

진법의 변환을 시행하는데 주로 쓰는 방법은 이렇게 변환하고자 하는 정수로 계속 나누어 나머지들은 구하면 된다.
첫 나머지가 맨 오른쪽에 위치하게 된다. 이 점을 이용해 뒤집는 걸 간단하게 해결할 수 있다.
class Solution {
public int solution(int n) {
int answer = 0;
String three = "";
while(n != 0){
three += n % 3; //뒤집은 순서대로 담긴다.
n /= 3;
}
return answer = Integer.parseInt(three, 3); // 10진법으로 변환
}
}
three += n % 3; 이렇게 하면 3진법변환 한 것을 뒤집은 것과 같은 결과이다.
- N진법 -> 10진법
Integer.parseInt(i, N);- 10진법 -> N진법
Integer.toBinaryString(number); // 2진법
Integer.toOctalString(number); // 8진법
Integer.toHexString(number); // 16진법
| 메서드 | 변환형 | 내용 |
|---|---|---|
| Integer.parseInt(String s, int radix) | int | radix진법으로 숫자를 표현하는 문자열 s를 정수로 변환 |
| Integer.toString(int v, int radix) | String | 정수v를 radix진법의 문자열로 변환 |
위의 표를 참고하면 더 간단하게 가능하다.
class Solution {
public int solution(int n) {
String str = Integer.toString(n, 3); //n을 3진법 문자열로 변환
String reversed = new StringBuilder(str).reverse().toString(); // 뒤집기
return Integer.parseInt(reversed, 3); //뒤집은 문자열 3진법 정수로 변환
}
}