본문 바로가기
Algorithms/코테 문풀

[프로그래머스] 저주의 숫자 3 - JavaScript

by hi-rachel 2023. 1. 12.

✏️ 문제 설명

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입니다.

 


 

✏️ 문제 풀이

- 내 풀이

function solution(n) {
    let result = 0;
    for (let i = 1; i <= n; i++) {
        result += 1;
        while (result % 3 === 0 | result.toString().includes(3)) {
            result += 1;
        }
    }
    return result;
}

n이 3 이상 일 때부터 하나씩 증가해서 반환하는데, 추가로 답이 3의 배수이거나 3을 포함하면 1을 더 더해줘 반환한다.

- 다른 풀이

function solution(n) {
  return [...Array(n * 3)]
    .map((_, i) => i + 1)
    .filter((num) => num % 3 !== 0 && !num.toString().includes("3"))[n - 1];
}

 

 

공부하면서 적는 글입니다. 공감과 피드백 환영합니다 🙂