본문 바로가기
TIL/알고리즘

조금 쉬운 알고리즘 - 저주의 숫자 3

by saramnim 2023. 3. 16.
728x90

기초 알고리즘에 대해 알아보자!

Q. 저주의 숫자 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) {
    var answer = 0;
    var cnt = 0;
    for(let i=1; cnt < n; i++){
        while(i % 3 === 0 || String(i).includes("3")) i++
        cnt++
        answer = i
    }
    return answer;
}
function solution(n) {
    var answer = 0;
    for(let i=1; i <= n; i++){
        answer++
        while(answer % 3 === 0 || String(answer).includes("3")) answer++
        console.log(answer)
    }
    return answer;
}

다른 사람의 풀이

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

댓글

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."