프로그래머스/level 2
[프로그래머스] 프로그래머스 124 나라의 숫자
binaryJournalist
2021. 4. 22. 21:52
반응형
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
** Javascript
3진법이라는 알았는데 for문으로 접근했다가 시간을 너무 오래 잡아먹었다.
결국 구글링해서 답을 알아냈는데 생각보다 더 간단했다.
while 을 사용하면 이렇고
function solution(n) {
const availableNumber = [ 4, 1, 2 ];
let answer = '';
while (n) {
answer = availableNumber[n % 3] + answer;
n = n % 3 ? Math.floor(n / 3) : n / 3 - 1;
}
return answer;
}
더 줄이면 이렇게 된다.
추천 가장 많이 받은 식인데 재귀함수 방법을 썼다.
n===0 조건 부분을 편집해서 길이를 더 줄여봤다.
function solution(n) {
return n ? solution(parseInt((n - 1) / 3)) + [1, 2, 4][(n - 1) % 3] : '';
}
(2022-04-28 추가)
** Python
def solution(n):
answer = ''
일이사 = '124'
if n < 1: return answer
while(n) :
n -= 1
answer = 일이사[(n) % 3] + answer
n = n // 3
return answer;
반응형