[코틀린, kotlin / 프로그래머스] 저주의 숫자3

1. 문제 출처


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. 풀이

class Solution {
    fun solution(n: Int): Int {
        var answer: Int = 0
        
        for(i in 1..n){
            answer++
            while(answer%3==0 || answer.toString().toCharArray().contains('3')) answer++ 
        }
        
        return answer
    }
}
for문 안에서 3으로 나누어 떨어지는 수나 3을 포함하는 숫자인 경우 answer을 더해줌으로써 문제를 해결하였다. if문이 아닌 while 문으로 묶은 이유는 12 → 13 인 경우 +1, +1 총 두번 건너뛰어야하기 때문에 while문을 사용하였다.