life is egg

3진법 뒤집기 본문

알고리즘/프로그래머스

3진법 뒤집기

삶은계란진재혁 2023. 1. 13. 00:00
import java.util.ArrayList;

class Solution {
     public int solution(int n) {


    //3^0,3^1,3^2,3^3,
    //0,0,2,1
    //2*9 + 1*27

        ArrayList<Integer> arrayList = new ArrayList<>();


    //10진법을 어떻게 3진법으로 바꿈 ? 3으로 나눔 ?

    while(n>0){
        //45 -> 15 ->5 ->3,2
        // 일단  0    0   2 //!!1 ///

        //125 -> 123 ->41 ->39 ->13 -> 12 ->4 -> 3
            //  2         2          1       1   //1

        if(n%3==0){
            arrayList.add(0);
            n/=3;
        } else if ((n-1)%3==0){
            arrayList.add(1);
            n = (n-1)/3;
        }else if((n-2)%3==0){
            arrayList.add(2);
            n = (n-2)/3;
        }
        //이게 뒤집혀진 결과이고 ..!
    }
        int answer = 0;
        int tree = 1;
    for(int i = arrayList.size()-1; i>=0;i--){
        answer += arrayList.get(i)*tree;
        tree*=3;
    }
        return answer;

    }
}

 

어지쩌지 풀려서 다행인 문제... 기다려준 스터디 분들에게 감사를 ..!!,,

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

배열 회전 시키기  (0) 2023.01.12
[연습문제]하샤드의 수  (0) 2022.12.26
[Lv.0]분수의 덧셈  (1) 2022.11.17
Comments