Contents
정답문제 설명
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입니다.
기본적으로 주어진 코드 :
class Solution {
public int solution(int n) {
int answer = 0;
return answer;
}
}
정답
class Solution {
public int solution(int n) {
int number = 1;
int count = 0;
while (count != n) { // count가 n이 되기 전까지 반복
if (number == 1 || number == 2) { // 1과 2는 신경쓸 필요 없이 count 상승
number++;
count++;
continue;
}
boolean isHaveNumber3 = false;
String str = String.valueOf(number);
for (int i = 0; i < str.length(); i++) { // 문자'3'이 있다면 isHaveNumber3를 true로 변경
if (str.charAt(i) == '3') {
isHaveNumber3 = true;
}
}
if (number % 3 != 0 && !isHaveNumber3) { // 3의 배수가 아니면서, 숫자에 3문자가 없을 때 count 상승
count++;
}
number++;
}
return number - 1; // count가 n과 같아지더라도 반복문 마지막에 number를 1증가 시키기 때문에 1을 뺀 값을 반환
}
}
Share article