본문 바로가기
코테연습

166. 124 나라의 숫자 Javascript

by hxunz 2022. 9. 22.

https://school.programmers.co.kr/learn/courses/30/lessons/12899

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제에 대한 이해

  • 우리가 풀어야 할 문제는 무엇인가?
     - n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 
  • 주어진 자료는 무엇인가?
     - 자연수 n
     - 124 나라에는 자연수만 존재
     - 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용
  • 조건은 무엇인가?
     - n은 50,000,000이하의 자연수

2. 계획

  1. 1,2,4를 배열에 담는다.
  2. 주어진 숫자 n을 3으로 나눴을때의 몫을 위 배열의 인덱스로 접근한다. 
  3. 나머지가 1 혹은 2일 때는 1을 빼든 안 빼든 3으로 나눈 몫은 동일하니까 n에서 1을 빼고 이를 3으로 나눈다.
  4. 3번 값을 n이라고 하고 n이 0이 될때까지 반복한다.

3. 실행

  • 풀이 계획을 실행하고, 각 단계가 올바른지 점검하라.
const solution = (n) => {
  const numbers = ['4', '1', '2'];
  let newNumber = '';

  while (n > 0) {
    newNumber = numbers[n % 3] + newNumber
    n = Math.floor((n - 1) / 3)
  }
  return newNumber
};

test('transNumber', () => {
  expect(solution(1)).toEqual('1');
  expect(solution(2)).toEqual('2');
  expect(solution(3)).toEqual('4');
  expect(solution(4)).toEqual('11');
  expect(solution(5)).toEqual('12');
  expect(solution(6)).toEqual('14');
  expect(solution(7)).toEqual('21');
  expect(solution(8)).toEqual('22');
  expect(solution(9)).toEqual('24');
  expect(solution(10)).toEqual('41');

});

 

'코테연습' 카테고리의 다른 글

170. 문자열 나누기 Javascript  (0) 2023.01.03
167. n^2 배열 자르기 Javascript  (0) 2022.09.22
165. 튜플 Javascript  (1) 2022.09.21
164. 괄호 회전하기 Javascript  (0) 2022.09.21
163. H-Index Javascript  (0) 2022.09.20

댓글