Algorithm

[프로그래머스] 연습문제 (3진법 뒤집기)

펭귄코기 2022. 9. 27. 09:40

문제 설명

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

 

제한 조건

n은 1 이상 100,000,000 이하인 자연수입니다

 

입출력 예시

n result
45 7
125 229

 

나만의 해설

들어온 값을 3으로 나눠서 나머지를 나열하고 각 자리수 마다 3의 0승, 3의 1승, 3의 2승...

이런식으로 수를 만들어서 반환해주면된다

그럼 들어온 수를 %3 해서 answer에 붙여주는데 이게 가능한건

answer를 String 타입으로 바꿔서 거기에 int값을 붙이면 String + int == String 이 되기에

순서데로 잘 붙일 수 있다 그리고 마지막에 integer.parsInt로 3진수로 만들어주면 된다

 

public class Solution {
    public static void main(String[] args) {
        String answer = "";
        int n = 45;

        while(n >= 3) {
            answer += n % 3;
            n /= 3;
        }
        answer += n;

        System.out.println(Integer.parseInt(answer, 3));
    }
}