코딩 테스트
[프로그래머스 Level 0] 저주의 숫자 3
y_flm
2025. 4. 4. 17:30
문제:
3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다.
3x 마을 사람들의 숫자는 다음과 같습니다.
정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return하도록 solution 함수를 완성해주세요.
10진법 3x 마을에서 쓰는 숫자 10진법 3x 마을에서 쓰는 숫자 1 1 6 8 2 2 7 10 3 4 8 11 4 5 9 14 5 7 10 16
문제 풀어보기: https://school.programmers.co.kr/learn/courses/30/lessons/120871?language=javascript
풀이보기
더보기
function solution(n) {
let result = {};
let count = 0;
for(let i = 1; i <= n; i++) {
let num = i + count;
while (num.toString().includes('3') || num % 3 === 0) {
count++;
num = i + count;
}
result[i] = num;
}
return result[n];
}
나는 10진수와 마을에서 쓰는 수를 매칭시키기위해 객체를 사용했다.
for문을 이용해서 result[i] = i + count 형태로 객체에 삽입을 시켜줄 것이다.
3의 배수이거나 3이 포함되면 count 증가시켜줄 것이다.
근데 여기서 저 두 조건에 해당되지 않는 숫자여야하므로 조건에 해당되지 않는 숫자를 만날 때 까지 while문을 돌려준다.
그럼 이제 마지막에는 result 객체에서 n의 키 값을 반환해주면 끝 !