Algorithm/Programmers
[프로그래머스 JS] 저주의 숫자 3
그랴
2022. 12. 11. 16:19
3의 배수이거나 3이 들어있을 때를 체크해주는 함수를 만들었다.
이 때 주의할 점은 12일 때 3의 배수여서 다음 수로 가도 13이기 때문에 3이 있어서 한 번 더 건너 뛰어야 하기 때문에, 이부분은 while문으로 반복시켜주었다.
문제
더보기
문제 설명
3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 3x 마을 사람들의 숫자는 다음과 같습니다.
10진법3x 마을에서 쓰는 숫자10진법3x 마을에서 쓰는 숫자1 | 1 | 6 | 8 |
2 | 2 | 7 | 10 |
3 | 4 | 8 | 11 |
4 | 5 | 9 | 14 |
5 | 7 | 10 | 16 |
정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return하도록 solution 함수를 완성해주세요.
function solution(n) {
let answer = 0;
let cnt = 1;
while(cnt <= n ){
let temp = answer + 1;
if (isThree(temp) === true){
while(isThree(temp) === true){
temp++;
if(isThree(temp) === false){
answer = temp;
}
}
} else {
answer++;
}
console.log('10진법:', cnt, '3x진법:', answer);
cnt++;
}
return answer;
}
function isThree (n) {
let n_arr = n.toString().split('');
if (n%3 === 0 || n_arr.includes('3')){
return true;
} else {
return false;
}
}