개발 기록 남기기✍️

[프로그래머스] 저주의 숫자 3 본문

코딩 테스트 연습

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

너해동물원 2023. 1. 4. 17:09

🗒️ 문제 설명

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

❇️ 나의 풀이

  • for 문을 1부터 n까지 반복하면서 answer에 1을 더한다.
  • answer에 1을 더한 뒤, 해당 값이 3의 배수이거나 3이라는 숫자를 포함하면 answer에 1을 더한다.
    • 12,13 같이 조건에 맞는 값이 여러 번 등장할 수 있으므로 while문을 사용해 answer가 3의 배수이거나 3을 포함하는게 아니라면 조건을 벗어나 for문의 다음 동작을 실행하고, 조건에 맞는다면 계속 while 문의 동작을 수행하도록 한다.
function solution(n) {
    answer = 0;
    for(let i=1;i<=n; i++){
        answer+=1;
        while(answer % 3 === 0 || String(answer).includes(3)){
             answer+=1
        }
    }
    return answer
}