본문 바로가기

프로그래머스

3번 뒤집기

728x90

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가 있나보다

728x90

'프로그래머스' 카테고리의 다른 글

과일 장수  (0) 2023.01.15
푸드파이터대회  (0) 2023.01.14
최대공약수와 최소공배수  (0) 2023.01.12
다리를지나는트럭  (0) 2023.01.10
부족한 금액 계산하기  (0) 2023.01.10