공부 흔적남기기

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

코테/프로그래머스

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

65살까지 코딩 2022. 1. 15. 10:30
728x90
반응형
class Solution {
    public int solution(int x) {
        //이 문제는 풀기전에 10진수를 다른 진법으로 어떻게 바꾸는지 알고 풀면 편함
        String ans = "";
        // 10진수 -> 3진수로 변환하는 과정
        //간단히 설명하면 ... 81, 27, 9, 3, 1 이렇게 위에서 부터 나타내는데
        // 나누어 떨어진다면 0값
        // 그렇지 않다면 나머지 값을 사용하면됨
        // 반복문마다 x를 3으로 나눠줌
        while(x>0){
            ans = (x%3) +ans;
            x /=3;
        }
        // sb를 통해 리버스 시켜준후
        StringBuffer sb =new StringBuffer(ans);
        String reverse = sb.reverse().toString();
        int answer = 0;
        // 10진 법으로 바꿔주는 과정
        for(int i =0; i< reverse.length(); i++){
             answer += (int) (Integer.parseInt(String.valueOf(reverse.charAt(reverse.length() - 1 - i))) * Math.pow(3,i));
        }

        return answer;
    }
}

출처:https://programmers.co.kr/learn/courses/30/lessons/68935

 

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

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

programmers.co.kr

 

728x90
반응형