반응형

반응형

프로그래머스 코딩테스트 124 나라의 숫자 : https://school.programmers.co.kr/learn/courses/30/lessons/12899

문제보기


124나라의 숫자 어떻게 풀어야할까?

자연수 n을 124 나라에서 사용하는 숫자로 바꾸는 문제를 해결하기 위해서는 아래와 같이 생각할 수 있어요.

124 나라에서는 1, 2, 4만 사용하므로 10진법 수를 3진법처럼 생각하여 변환해봅시다.

단, 3으로 나누어 떨어지는 경우 0 대신 4를 사용합니다.

따라서 while 문을 사용하여 n을 3으로 나눈 나머지에 따라 124 나라에서 사용하는 숫자로 변환합니다.

이때 3으로 나누어 떨어지는 경우 n을 1만큼 감소시키고 124 나라에서 사용하는 수에 따라 0 대신 4를 사용합니다.

자 여기까지 어느정도의 힌트를 드렸으니 혼자 풀어보실 의향이 있으시다면 풀어보시면 됩니다.

 

만약 정답을 보고싶으시다면 아래를 참고해주세요.

 


function solution(n) {
    let answer = ''; // 변환한 124 나라에서 사용하는 숫자를 저장할 변수
    while(n > 0){ // n이 0보다 크면 계속 반복
        switch(n % 3){ // n을 3으로 나눈 나머지에 따라 분기 처리
            case 1:
                answer = '1' + answer; // 나머지가 1이면 1을 추가
                n = Math.floor(n / 3); // n을 3으로 나눈 몫으로 업데이트
                break;
            case 2:
                answer = '2' + answer; // 나머지가 2이면 2를 추가
                n = Math.floor(n / 3); // n을 3으로 나눈 몫으로 업데이트
                break;
            case 0:
                answer = '4' + answer; // 나머지가 0이면 4를 추가
                n = Math.floor(n / 3) - 1; // n을 3으로 나눈 몫에서 1을 빼서 업데이트
                break;
        }
    }
    return answer; // 변환한 124 나라에서 사용하는 숫자를 반환
}
반응형

+ Recent posts