본문 바로가기

문제 풀이/Programmers

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

문제 출처 - Programmers

문제는 여기

 

코딩테스트 연습 - 3진법 뒤집기

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

programmers.co.kr


[풀이]

1. Integer.toString()을 사용해 입력으로 주어진 10진수를 3진수로 변경한다.

2. 1. 에서 만들어진 3진수 문자열을 뒤집어준다.

3. 2. 에서 만들어진 문자열을 Integer.parseInt()를 사용해 3진수를 다시 10진수로 변환해준다.

[접근]

1. 10진수에서 n진수로 변경하기 위해 Integer.toString()을 사용하면 된다는 것을 알게 되어 이 방법을 사용하였다.

2. n진수에서 10진수로 변경하기 위해 Integer.parseInt()를 사용하면 된다는 것을 알게 되어 이 방법을 사용하였다.

[코드]

class Solution {
    public int solution(int n) {
        // 3진수로 변환
        String s = Integer.toString(n, 3);
        String word = "";
        
        // 3진수 뒤집기
        for (int i = s.length() - 1; i >= 0; i--) {
            word += s.charAt(i);
        }
        
        // 10진수로 변환
        int answer = Integer.parseInt(word, 3);
        
        return answer;
    }
}