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,2,4를 배열에 담는다.
- 주어진 숫자 n을 3으로 나눴을때의 몫을 위 배열의 인덱스로 접근한다.
- 나머지가 1 혹은 2일 때는 1을 빼든 안 빼든 3으로 나눈 몫은 동일하니까 n에서 1을 빼고 이를 3으로 나눈다.
- 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 |
댓글