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

stella·2023년 1월 18일
0

Algorithm

목록 보기
16/40
post-thumbnail

문제

3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return하도록 solution 함수를 완성해주세요.


1. 반복문을 n까지 돌면서 조건에 만족하는지 체크해보자

function solution(n) {
    var answer = 0;
    
  	// n까지 반복
    for (let i = 1; i <= n; i++) {
      	// i에 따른 answer의 증가
        answer += 1;
        
        while(true) {
          	// 3이 들어가지 않고, 3의 배수 또한 아닌 경우까지 반복
            if (answer % 3 === 0 || String(answer).includes("3")) {
                answer += 1;
                continue;
            }
            break;
        }
    }
    return answer;
}
  • 3이 들어간 숫자, 3의 배수인 숫자는 모두 허용되지 않는다.

  • 두 조건 중 하나를 만족해서 1이 증가된 숫자가 또 다시 조건을 만족하게 되는 경우를 생각해야한다. while문 안에 if를 넣어서 해당 조건을 만족하지 않을 때까지 1을 증가시켜보자.

2. if문 없이 while문 사용해보자

function solution(n) {
    var answer = 0;
    
    for (let i = 1; i <= n; i++) {
        answer += 1;
        
        while(answer % 3 === 0 || String(answer).includes("3")) {
            answer += 1;
        }
    }
    return answer;
}
profile
Frontend Engineer

0개의 댓글