프로그래밍 공방

[프로그래머스] 월간 코드 챌린지 시즌1 : 3진법 뒤집기 본문

개발/문제해결

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

hyosupsong 2020. 11. 6. 22:59

문제

자연수 n이 매개변수로 주어집니다.

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


제한사항

n은 1 이상 100,000,000 이하인 자연수입니다.


입출력 예


n result
45 7
125 229

문제해결방법

주어진 수를 3진법으로 나타내고 해당 숫자를 뒤집어서 10진법으로 바꿔준다.


코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package Programmers;
 
public class Solution_3진법뒤집기 {
 
    public static int solution(int n) {
        int answer = 0;
        StringBuilder sb = new StringBuilder();
        while(n!=0) {
            sb.append(n%3);
            n/=3;
        }
        String number = sb.reverse().toString();
        int jinsu = 1;
        for(int i=0; i<number.length(); i++) {
            answer += jinsu*(number.charAt(i)-'0');
            jinsu*=3;
        }
        return answer;
    }
    
    public static void main(String[] args) {
        int n = 125;
        System.out.println(solution(n));
    }
 
}
 
cs

코드에 대한 피드백이나 더 좋은 아이디어는 언제나 환영입니다.