알고리즘

프로그래머스 - 3진법 뒤집기

Heidong 2022. 7. 22. 19:42
반응형

 

내 풀이

public class P_39 {
	
	public int solution(int n) {
        int answer = 0;
        
        StringBuilder sb = new StringBuilder();
        
        while(n > 0) {
        	if(n % 3 == 0) {
        		sb.append(0);
        	} else {
        		sb.append(n % 3);
        	}
        	n = n / 3;
        }
        String x = sb.toString();
        answer = Integer.parseInt(x, 3); 
        // parseInt() 메소드는 첫번째 인자에 String 형태의 숫자
        // 두번째 인자에 몇 진수를 10진수로 변경할건지 넣어주면 된다.
        // 3진수를 10진수로 바꿔야 하니까 두번째 인자에 3을 넣는다.
        
        return answer;
    }

	public static void main(String[] args) {
		// 3진법 뒤집기

		P_39 p = new P_39();
		
		int n = 45;
		
		System.out.println(p.solution(n));
	}

}

10진수를 3진수로 바꾸기 위해서는 3을 나눈 몫이나 나머지를 이용해서 구하면 된다.

그리고 다시 n진수를 10진수로 바꾸기 위해서 Integer 클래스의 parseInt() 메소드를 이용했다.

 

 

다른 사람 풀이

class Solution {
    public int solution(int n) {
        String a = "";

        while(n > 0){
            a = (n % 3) + a;
            n /= 3;
        }
        a = new StringBuilder(a).reverse().toString();


        return Integer.parseInt(a,3);
    }
}

처음부터 String의 빈 껍데기를 만들고 시작한 풀이 방법.

주요 풀이 해법은 똑같다.

반응형