본문 바로가기
개발이야기/알고리즘

[알고리즘] 124 나라의 숫자

by KimHarry 2024. 3. 6.

조건

n 은 50,000,000 이하의 자연수

 

과정

숫자만 1, 2, 4일 뿐 3의 진수나 다름 없다.

주어진 10의 진수(n)을 3의 진수로 바꾸어 주자.

 

풀이

function solution(n) {
  let answer = "";

  // 3의 진수 0, 1, 2을 대신 표기할 4, 1, 2 스키마 정의
  const schema = ["4", "1", "2"];

  while (n > 0) {
    // 3으로 나눈 나머지를 구한다
    answer = schema[n % 3] + answer;
    
    // 나머지가 0일 경우: 몫에서 1을 빼준다.
    // 나머지가 0이 아닐 경우: 몫을 그대로 넘겨준다.
    n = n % 3 === 0 ? n / 3 - 1 : parseInt(n / 3);
  }

  return answer;
}