저주의 숫자 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
나의 풀이 #
class Solution {
public int solution(int n) {
int answer = 0;
int dec = 0;
while(dec < n){
answer++;
String temp = answer+"";
if(!temp.contains("3") && answer%3!=0)
dec++;
}
return answer;
}
}
// 사용하지 않는 숫자일경우 dec값을 증가하지 않음으로 반복횟수를 늘림
class Solution {
public int solution(int n) {
int answer = 0;
int dec = 0;
while(dec < n){
answer++;
if(!String.valueOf(answer).contains("3") && answer%3!=0)
dec++;
}
return answer;
}
}
다른 사람의 풀이 #
// 사용하지 않는 숫자일경우 i값을 감소시켜 반복횟수를 늘리는 방식
class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 1; i <= n; i++) {
answer++;
if (answer % 3 == 0 || String.valueOf(answer).contains("3")) {
i--;
}
}
return answer;
}
}
// 사용하지 않는 숫자일경우 n값을 증가시켜 반복횟수를 늘리는 방식
class Solution {
public int solution(int n) {
for (int i = 1; i <= n; i++){
if(String.valueOf(i).contains("3") || i%3 == 0)
n++;
}
return n;
}
}