1차원 배열 - for문과 if문을 적절히 사용하면 쉬운문제이다.
1. 첫 줄에 수열의 길이 N, 해당 수보다 작은 수를 찾기위한 변수 X가 제공되므로
BufferedReader-> StringTokenizer로 받아준다.
2. 입력 두번째 줄에 수열을 받아야 하므로, StringTokenizer를 다시 호출한다.
이때, 필자는 StringTokenizer st1 = new StringTokenizer(br.readLine(), " "); 로 새로 생성해주었으나,
기존에 생성된 StringTokenizer를 그대로 이용해도된다.
st = new StringTokenizer(br.readLine(), " ");
3. 수열을 생성하고, 두번째줄 Input으로 채워넣는다.
int[] arr = new int[N];
for(int i=0; i<arr.length; i++){
arr[i] = Integer.parseInt(st1.nextToken());
}
4. StringBuilder를 만들어주고, 같은 수가 있는지 검사해서 있다면 추가해준다.
StringBuilder sb = new StringBuilder();
for(int i=0; i<arr.length; i++){
if(arr[i] < X){
sb.append(arr[i]);
sb.append(" ");
}
}
System.out.print(sb);
완성된 코드
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int X = Integer.parseInt(st.nextToken());
StringTokenizer st1 = new StringTokenizer(br.readLine(), " ");
int[] arr = new int[N];
for(int i=0; i<arr.length; i++){
arr[i] = Integer.parseInt(st1.nextToken());
}
StringBuilder sb = new StringBuilder();
for(int i=0; i<arr.length; i++){
if(arr[i] < X){
sb.append(arr[i]);
sb.append(" ");
}
}
System.out.print(sb);
}
}
'Programming > 알고리즘' 카테고리의 다른 글
[백준] 3052 - 나머지 - JAVA[자바] (0) | 2022.11.27 |
---|---|
[백준] 5597 - 과제 안 내신 분..? - JAVA[자바] (0) | 2022.11.27 |
[백준] 10807 - 개수 세기 - JAVA[자바] (0) | 2022.11.27 |
[백준] 1110- 더하기 사이클 - JAVA[자바] (0) | 2022.11.26 |
[백준] 10951 - A+B-4 - JAVA[자바] (0) | 2022.11.26 |