Algorithm/Java

프로그래머스 - 3진법 뒤집기 java :: 월간 코드 챌린지 시즌1 :: 68935

고고마코드 2022. 7. 4. 21:00
반응형

문제 링크

코딩테스트 연습 - 3진법 뒤집기 | 프로그래머스 (programmers.co.kr)


문제 이해하기

문제의 핵심은 3진법을 구하는 겁니다.

3진법 구하는 방법은
n을 3으로 나누어 떨어지는 수를 순서대로 나열하고 그 때마다 n을 3으로 나누면 됩니다.
이 과정을 n이 0이 될 때까지 반복하면 됩니다.

1 n = 45 45 % 3 = 0 45 / 3 = 15
2 n = 15 15 % 3 = 0 15 / 3 = 5
3 n = 5 5 % 3 = 2 5 / 3 = 1
4 n = 1 1 % 3 = 1 1 / 3 = 0

이렇게 구한 나머지 값들을 아래부터 순서대로 나열하면 3진법이 됩니다. (1200)
단, 우리는 3진법을 뒤집어야 하니 아래부터 순서대로 나열하지 말고 위에서부터 순서대로 나열하면 됩니다. (0021)


문제 풀이

코드-1

public int solution(int n) {        
    StringBuilder sb = new StringBuilder();
    while(n > 0) {
        sb.append( n%3 );            
        n /= 3;
    }

    return Integer.valueOf(sb.toString(), 3);
}
  • public static Integer valueOf(String s, int radix)
    radix에 3을 넣으면 3진법 -> 10진법, 5를 넣으면 5진법 -> 10진법 이런 개념입니다.

테스트 케이스 처리속도

  • 0.04ms

반응형