programmers-저주의 숫자3*****
programmers-저주의 숫자3*****

programmers-저주의 숫자3*****

Tags
Algorithm
Programmers
Published
March 18, 2024
Author
gozneokhan

•programmers-저주의 숫자3*****

저주의 숫자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 실행 결과 〉 테스트를 통과하였습니다. */

동작 원리

notion image

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]; }