코딩테스트 공부
[프로그래머스] - 124 나라의 숫자
codevil
2022. 4. 19. 13:19
https://programmers.co.kr/learn/courses/30/lessons/12899#
코딩테스트 연습 - 124 나라의 숫자
programmers.co.kr
2단계의 앞부분에 위치하고 있어서 여러번 시도하고 여러번 실패한 문제. 다른분의 풀이를 보니 다른분의 풀이를 보는게 더 나은거 같다.
function solution(n) {
let answer = []
n = n.toString('3');
n = n.split('');
while(n.length!==0){
if(n[n.length-1]!=='0'){
answer.push(n[n.length-1])
n.pop();
}else if(n[n.length-1]==='0'){
answer.push('4')
n.pop();
for(let i=n.length-1;i>=0;i--){
if(n[i]==='0'){
n[i] = '2'
}else if(n[i]==='2'){
n[i] ='1'
break;
}else if(n[i]==='1'){
n[i]='0'
break;
}
}
}
if(n[0]==='0'){
n.shift()
}
}
answer = answer.reverse().join('')
return answer
}
음.. 내풀이의 요약은 3진법으로 바꾸고, 숫자를 하나씩 pop시키고 list에 모은다. pop시킬때 만일 pop 시킨 숫자가 0이라면 4를 대신에 넣고, 앞에있는 숫자에서 1을뺀다, 이때, 뺀 숫자가 0이라면 그 앞의 숫자에 1을 뺀다. 만일 0이 아니라면 break. 하고 리버스 시키고 join 시켰다. 다음번에 풀때는 다른사람의 풀이처럼 풀어봐야겠다