프론트엔드 개발자의 기록 공간

[프로그래머스 JavaScript] 124 나라의 숫자 본문

알고리즘_JS/프로그래머스_Level2

[프로그래머스 JavaScript] 124 나라의 숫자

[리우] 2021. 7. 21. 18:09

🚩 프로그래머스 Level2 124 나라의 숫자

📖 문제 설명

숫자가 1,2,4 밖에 없다 -> 3진법이라는 얘기이다.

즉 3진법이므로 3의 나머지를 활용하면 된다.

입출력 예를 보면 1->1,   2->2,   3->4 인 것을 확인할 수 있다.

따라서 3의 나머지 값을 배열로 만들면 [4, 1, 2] 가 된다.

이것을 n이 없어질때 까지 반복하면 된다.

 

👉 소스 코드 ⏰시간복잡도 O(n)

function solution(n) {
    var answer = "";
    //1,2,4만 사용 -> 3진법 유사
    //3으로 나눈 나머지를 이용 순서 4,1,2
    let mod = ["4","1","2"];
    
    while(n > 0){
        //3으로 나눈 나머지 저장
        answer = mod[n%3] + answer;
        //3과 정확히 떨어지면 몫이 1이 생기기 때문에 -1을 해준후 계산한다.
        n = parseInt((n-1)/3);
    }
    return answer;
}

📖 코드 설명

코드 로직은 흔히 알고 있는 2진법과 같이 진행해주면 된다. 

그래서 기존값 앞에 해당 숫자를 더해 나가면 된다.

 

 

📃 https://mungto.tistory.com/206

728x90
Comments