# 저주의 숫자 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입니다.

## 코드

이 문제는 도저히 숫자의 규칙을 모르겠어서 다른 사람들의 풀이를  찾아보았다.

### 다른 풀이

```javascript
function solution(n) {
    let answer = 0;

    const checkNumber = (k)=>{
        const numbers = String(k).split("")
        if(k%3===0|| numbers.includes("3")){
            answer++
            checkNumber(answer)
    	} else {
        return
    	}
    }
    for(let i = 0; i<n; i++){
        answer++
        checkNumber(answer)
    }
    return answer
}
```

문제에서 3x 나라는 3의 배수와 3이 들어간 숫자는 사용하지 않는다고 했다.&#x20;

(1) 0부터 n까지 반복문을 돌면서 값을 1씩 추가해준다.

(2) 1을 추가한 값이 3의 배수인지, 3을 포함하는지 판단한다.

그래서 만약 3의 배수이거나 3이 포함되면 answer는 하나 더 늘어나게 되고, 1이 더해진 값에 대하여 한번 더 check 하는 함수를 실행한다. 아무 조건에 걸리지 않으면 그대로 리턴하고 함수를 종료한다.

**참고**

<https://selfdevelopcampus.tistory.com/entry/javascript-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%A0%80%EC%A3%BC%EC%9D%98-%EC%88%AB%EC%9E%90-3>
