저장을 습관화

프로그래머스 LV.0 저주의 숫자 3 본문

코딩 테스트/프로그래머스 - 자바스크립트

프로그래머스 LV.0 저주의 숫자 3

ctrs 2024. 2. 23. 10:37

프로그래머스 LV.0 저주의 숫자 3

https://school.programmers.co.kr/learn/courses/30/lessons/120871

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 명

저주의 숫자 3


2. 문제 설명

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 함수를 완성해주세요.


3. 제한 사항

1 ≤ n ≤ 100


4. 예시

n result
15 25
40 76


5. 기본 제공 코드

function solution(n) {
  var answer = 0;
  return answer;
}


6. 제출한 내 답

const solution = (n) => {
  let answer = 0;
  for (i = 1; i <= n; i++) {
    answer += 1;
    while (answer % 3 === 0 || answer.toString().includes('3')) {
      answer += 1;
    }
  }

  return answer;
};

 

6-2. VSC에 작성한 내용

const solution = (n) => {
  // 조건 1. 3의 배수이면 안됨
  // 조건 2. 3을 포함해도 안됨
  // 조건 3. 조건 1과 조건 2를 피한 결과가 3의 배수이거나 3을 포함하고 있어선 안됨
  let answer = 0;
  for (i = 1; i <= n; i++) {
    answer += 1;
    while (answer % 3 === 0 || answer.toString().includes('3')) {
      answer += 1;
    }
  }

  return answer;
};

// test
console.log(solution(15));
console.log(solution(40));


7. 특이사항

없음


8. 다른 사람이 작성한 답

8-1.

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