•programmers-저주의 숫자3*****
저주의 숫자3
문제 설명
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 함수를 완성해주세요.제한사항
- 1 ≤
n
≤ 100
입출력 예
n | result |
15 | 25 |
40 | 76 |
입출력 예 설명
입출력 예 #1
- 15를 3x 마을의 숫자로 변환하면 25입니다.
입출력 예 #2
- 40을 3x 마을의 숫자로 변환하면 76입니다.
•solution.js
function solution(n) { let answer = 0; for (let _ = 0; _ < n; _++) { answer += 1 while (answer % 3 == 0 || answer.toString().split('').includes('3')) { answer += 1 } } return answer; } /* 테스트 1 입력값 〉 15 기댓값 〉 25 실행 결과 〉 테스트를 통과하였습니다. 테스트 2 입력값 〉 40 기댓값 〉 76 실행 결과 〉 테스트를 통과하였습니다. */
동작 원리
•other-solution.js
function solution(n) { let arr = []; for (let i = 0; i < 1000; i++) { if (i % 3 != 0 && !i.toString().split('').includes('3')) { arr.push(i) } } return arr[n-1]; }
function solution(n) { return [...Array(n * 3)] .map((_, i) => i + 1) .filter((num) => num % 3 !== 0 && !num.toString().includes("3"))[n - 1]; }