본문 바로가기
알고리즘/프로그래머스

프로그래머스 3진법 뒤집기 자바 java

by 클로드 2021. 4. 26.
반응형

풀이

10진법 수를 3진법으로 바꾸고

3진법 수를 반전시키고

반전시킨 3진법 수를 10진법으로 바꾸는 것으로 순서대로 해결합니다

 

while문을 통해서 3으로 계속 나눠서 3진법 문자열을 만들어 줍니다

while (n != 0) {
    base3 = (n % 3) + base3;
    n /= 3;
}

 

3진법 반전하는 것은

StringBuilder 클래스와 reverse() 함수를 이용해서 문자열을 반전시켜서 해결합니다

StringBuilder sb = new StringBuilder();

base3 = sb.append(base3).reverse().toString();

 

반전된 3진법을 다시 10진법으로 바꾸는 건

Integer.parseInt() 함수를 이용해서 해결합니다

answer = Integer.parseInt(base3, 3);

코드

문제의 순서대로 처리하는 코드

class Solution {
    public int solution(int n) {
        int answer;
        String base3 = "";
        StringBuilder sb = new StringBuilder();

        while (n != 0) {
            base3 = (n % 3) + base3;
            n /= 3;
        }

        base3 = sb.append(base3).reverse().toString();

        answer = Integer.parseInt(base3, 3);

        return answer;
    }
}

 

3진법 반전하는 과정을 줄인 코드

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

        while (n != 0) {
            base3 += Integer.toString(n % 3);
            n /= 3;
        }

        answer = Integer.parseInt(base3, 3);

        return answer;
    }
}

 

출처

programmers.co.kr/learn/courses/30/lessons/68935

반응형

댓글