https://www.acmicpc.net/problem/10871
조건.
- 배열의 크기 N과 주어진 숫자 X가 주어진다.
- 배열의 크기 N만큼 숫자를 입력하고 주어진 X보다 작은 숫자들을 출력해야한다.
- 출력되는 숫자 사이에는 공백(" ")이 존재하고 마지막 출력시엔 공백(" ")을 출력하지 않아야한다.
풀이.
N과 X를 입력 받고 입력받은 N의 크기를 가진 배열을 만든다.
Scanner sc = new Scanner(System.in);
int a,b;
a = sc.nextInt();
b = sc.nextInt();
int[] arr = new int[a];
다음에 입력받는 값들은 N크기의 배열에 차례로 저장되어야한다.
for(int i = 0; i < a; i++) {
arr[i] = sc.nextInt();
}
저장된 배열에서 주어진 X보다 작은 숫자를 for로 하나씩 돌려서 찾고 찾은 값을 출력한다.
for(int i = 0; i < a; i++) {
if(arr[i] < b) {
System.out.print(arr[i]);
}
}
출력된 숫자 사이에는 공백이 존재해야한다. int cnt를 추가해 처음 조건을 통과하면 공백(" ")을 출력하지 않고 X보다 작은 값을 출력하기 전에 공백(" ")을 출력 후 찾은 값을 출력하게 만들었다.
for(int i = 0; i < a; i++) {
if(arr[i] < b) {
if(cnt > 0) {
System.out.print(" ");
}
System.out.print(arr[i]);
cnt++;
}
}
정답.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a,b;
a = sc.nextInt();
b = sc.nextInt();
int cnt=0;
int[] arr = new int[a];
for(int i = 0; i < a; i++) {
arr[i] = sc.nextInt();
}
for(int i = 0; i < a; i++) {
if(arr[i] < b) {
if(cnt > 0) {
System.out.print(" ");
}
System.out.print(arr[i]);
cnt++;
}
}
}
}
참고.
- .nextInt() 값은 공백(" ")을 기준으로 값을 판단한다.
'문제 > 백준' 카테고리의 다른 글
[백준] 10951. A+B - 4 - JAVA (0) | 2025.05.05 |
---|---|
[백준] 10950. A+B - 3 - JAVA (0) | 2025.05.05 |
[백준] 2530. 인공지능 시계 - JAVA (1) | 2025.05.03 |
[백준] 2480. 주사위 세개 - JAVA (0) | 2025.05.03 |
[백준] 2038 : 럭비 클럽 - JAVA (0) | 2025.04.25 |