반응형
https://www.codetree.ai/missions/4/problems/369-game/description
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 1; i <= n; i++) {
if (i % 3 == 0 || Include369(i)) {
System.out.print(0 + " ");
} else
System.out.print(i + " ");
}
sc.close();
}
public static boolean Include369(int num) {
boolean result = false;
while (num != 0) {
int digit = num % 10;
if (digit == 3 || digit == 6 || digit == 9) {
result = true;
break;
}
num /= 10;
}
return result;
}
}
설명
- 먼저 따로 만든 메소드부터 설명하겠습니다.
public static boolean Include369(int num) {
boolean result = false;
while (num != 0) {
int digit = num % 10;
if (digit == 3 || digit == 6 || digit == 9) {
result = true;
break;
}
num /= 10;
}
return result;
}
- '3, 6, 9'중에 하나라도 들어가있는지를 판별하는 메소드이다.
- 먼저 result를 false로 선언합니다. 거짓보다 참인 조건의 갯수가 적으니깐요!
- while문으로 'num != 0'을 한 이유는 나머지가 남지 않을때까지 돌리도록 하기 위함입니다.
- 10으로 나눈 나머지를 통해 '3, 6, 9'가 들어있는지 판별을 합니다.
- 점점 일의 자리, 10의 자리, 100의 자리를 판별합니다.
- 만약 나오면 result를 true로 값을 변환 후 break로 반복문을 빠져나옵니다.
for (int i = 1; i <= n; i++) {
if (i % 3 == 0 || Include369(i)) {
System.out.print(0 + " ");
} else
System.out.print(i + " ");
}
- 메소드에서 구한 참, 거짓인지와 i가 3의 배수인지를 판별!
반응형
'알고리즘 > 코드트리' 카테고리의 다른 글
[코드트리][Java] break문 - 1까지 나누기 (0) | 2024.08.08 |
---|---|
[코드트리 조별과제] 3주차 정리 (0) | 2024.08.04 |
[코드트리][Java] 반복문 안의 if - a 부터 b 까지 (0) | 2024.08.03 |
[코드트리][Java] if 안의 for - 높은 수에서 낮은 수까지 (0) | 2024.08.02 |
[코드트리][Java] n번 반복하기 - a/b 출력 (0) | 2024.08.01 |