조앤의 기술블로그

[프로그래머스] 3진법 뒤집기 (java) 본문

Programming/프로그래머스

[프로그래머스] 3진법 뒤집기 (java)

쬬앤 2021. 6. 27. 18:45

3진법 수를 만들때 일반적으로 진법 수 만들때 뒤집기가 필요하므로

그냥 그대로 진행하게 되면 reverse된 3진법을 구할 수 있게 된다.

 

[코드]

import java.util.*;

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        answer = makeDecimal(makeReverseTernary(n));        
        
        return answer;
    }
    
    //1. 3진법으로 만들어주는 함수 + 뒤집기
    static String makeReverseTernary(int num){
        String ternary = "";
        
        while(num != 0){
            ternary += Integer.toString(num % 3);
            num /= 3;
        }
        
        return ternary;
    }
    
    //2. 10진법으로 만들어주는 함수, 3진법 -> 10진법
    static int makeDecimal(String num){
        int decimal = 0;
        int length = num.length();
        int n;
        
        for(int i = 0; i < length; i++){
            n = num.charAt(length - 1 - i) - '0';
            
            decimal += n * Math.pow(3, i);
        }
        
        return decimal;
        
    }
    
}