import java.util.*;
class Solution {
public int solution(int n) {
int answer = 0;
int remain =0;
int num = 0;
Deque<Integer>deq = new ArrayDeque<>();
while(true)
{
remain = n%3;
deq.add(remain);
n = n/3;
if(n==0)
{
for(int i=deq.size();i>0;i--)
{
num+=(deq.poll()*(int)Math.pow(3,i-1));
}
answer = num;
break;
}
}
return answer;
}
}
10진수를 3진수를 바꿀때 나머지값을 queue에 넣으면 알아서 뒤집어 진다.
그값을 다시 3의 제곱수와 곱해서 num 값에 더해주면 값이 나온다.
베스트코드 프로그래머스 출처
class Solution {
public int solution(int n) {
String a = "";
while(n > 0){
a = (n % 3) + a;
n /= 3;
}
a = new StringBuilder(a).reverse().toString();
return Integer.parseInt(a,3);
}
}
큐에 넣지 않고, reverse 스트링으로 바로 넣어주었다.
그리고 10진 변환시도 parseInt(a,3)하면 3진을 10진으로 바로 바꿔주는 신박한 api가 있나보다
'프로그래머스' 카테고리의 다른 글
과일 장수 (0) | 2023.01.15 |
---|---|
푸드파이터대회 (0) | 2023.01.14 |
최대공약수와 최소공배수 (0) | 2023.01.12 |
다리를지나는트럭 (0) | 2023.01.10 |
부족한 금액 계산하기 (0) | 2023.01.10 |