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));
}
}