mun dev

[Programmers] 3진법 뒤집기 자바 본문

알고리즘/프로그래머스

[Programmers] 3진법 뒤집기 자바

mndev 2023. 4. 12. 18:05

문제 설명

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

 

 

제한사항

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

 

입출력 예

n result
45 7
125 229

 

 

통과한 코드

class Solution {
    public int solution(int n) {
        int answer = 0;
        String numStr="";
        int num=0;
        
        while(true){
            if(n<=0){
                break;
            }
            num=n%3;
            numStr+=String.valueOf(num); //3으로 나눈 나머지를 numStr에 더해주기 
            n/=3;
        }
        
        int idx=1; // 제곱수를 나타내는 변수 
        for(int i=numStr.length()-1; i>=0; i--){
            answer+= Character.getNumericValue(numStr.charAt(i))*idx; 
            idx*=3;
        }
        return answer;
    }
}