Lv 2. 124나라의 숫자

박하린·2021년 6월 18일
0

프로그래머스

목록 보기
29/42

📚 문제

124 나라의 숫자
https://programmers.co.kr/learn/courses/30/lessons/12899

💡 접근

3진법을 약간 변형해서 푸는 문제

n % 3이 0 이면 4, 1이면 1, 2이면 2로 대체된다.
4,1,2 를 담은 배열을 선언해주고
while 반복을 돌려 3으로 나눈 나머지의 인덱스를 answer에 차례대로 붙여주면 124 숫자를 붙여줄수있다.

3의 배수의 경우) 나눈 몫에서 -1을 해서 나머지를 구해준다.
나머지 수의 경우) 나눈 몫에서 나머지를 구해준다.

⌨️ 코드

function solution(n) {
  let ott = [4, 1, 2];
  let answer = "";

  while (n) {
    answer = ott[n % 3] + answer; // 3진수로 변환하는 부분 (먼저나온 나머지 + 다음 나머지 + ..)
    n = n % 3 == 0 ? n / 3 - 1 : Math.floor(n / 3); //(3의 배수일 경우 몫에서 -1을 해서 나머지를 구해줘야한다. 나머지 수의 경우 몫부분만 가져와서 다시 연산해준다)
  }
  return answer;
}

📝 리뷰

ToString으로 다른 진수로 바꿔본적은 있었는데 특정 base가 주어질 때 진수로 바꿔주는 문제를 풀어볼 수 있어서 좋았다

profile
깃허브: https://github.com/khakaa

0개의 댓글

Powered by GraphCDN, the GraphQL CDN