프로그래머스 12899

Siwoo Pak·2021년 8월 7일
0

자료구조&알고리즘

목록 보기
33/38

124나라의 숫자

문제설명

124 나라가 있습니다. 124나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.

  • 124 나라에는 자연수만 존재
  • 124 나라에는 모든 수를 표현할 때 1,2,4만 사용.

예를 들어 124나라에서 사용하는 숫자는 다음과 같이 변환됩니다.

  • 10진법: 1,2,3,4,5,6,7,8,9,10
  • 124나라: 1,2,4,11,12,14,21,22,24,41

자연수 n이 매개변수로 주어질 때, n을 124나라에서 사용하는 숫자로 바꾼값을 return하세요.

제한사항

n은 500,000,000이하의 자연수입니다.

수도코드

n>0 클때까지 반복
n%3의 값이 0인경우
answer에 4와 answer를 더한 값을 할당해주고
n은 n을 3으로 나눈 값에 - 1
1인 경우 answer에 1와 answer를 더한 값을 할당해주고
n은 n을 3으로 나눈 값을 내림하여 할당
2인 경우 answer에 2와 answer를 더한 값을 할당해주고
n은 n을 3으로 나눈 값을 내림하여 할당
반복이 끝나고 answer 리턴

코드

const solution = n => { 
  let answer = ''; 
  while(n>0) { 
    switch(n%3) { 
      case 0: 
        answer = 4 + answer; 
        n = n / 3 - 1; 
        break; 
      case 1: 
        answer = 1 + answer; 
        n = Math.floor(n/3); 
        break; 
      case 2: 
        answer = 2 + answer; 
        n = Math.floor(n/3); break; 
    } 
  } 
  return answer; 
} 
profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글