STUDY/프로그래머스 코딩테스트

✔ [월간 코드 챌린지 시즌1] 3진법 뒤집기

bameh 2022. 9. 30. 01:06

n진법의 자연수 number를 10진법으로 변환하는 방법

Integer.parseInt(number, n)

10진법의 자연수 number를 n진법으로 변환하는 방법

String temp = 0;
while(number > 0) {
	temp += number % n;
	number /= n;
}

 

[문제 설명]

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

제한사항
  • n은 1 이상 100,000,000 이하인 자연수입니다.
입출력 예
n result
45 7
125 229
입출력 예 설명

입출력 예 #1

  • 답을 도출하는 과정은 다음과 같습니다.

n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현
45 1200 0021 7
  • 따라서 7을 return 해야 합니다.

입출력 예 #2

  • 답을 도출하는 과정은 다음과 같습니다.

n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현
125 11122 22111 229
  • 따라서 229를 return 해야 합니다.

 

 

 

[문제 풀이]

class Solution {
    public int solution(int n) {
        int answer = 0;     
        String temp = "";   // 3진법 저장        
        
        // n을 3진법으로 표현
        while(n > 0) {
            temp += (n%3);
            n /= 3;
        }        
        
        // temp를 10진법으로 표현        
        answer = Integer.parseInt(temp, 3);
        
        return answer;
    }
}