문제
https://www.acmicpc.net/problem/10871
정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
첫 번째 풀이
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int n = Integer.parseInt(st.nextToken());
int x = Integer.parseInt(st.nextToken());
int[] numbers = new int[n];
List<Integer> smallNumbers = new ArrayList<>();
StringTokenizer st2 = new StringTokenizer(br.readLine()," ");
for(int i = 0 ; i < n ; i ++) {
numbers[i]=(Integer.parseInt(st2.nextToken()));
if ( numbers[i] < x ) {
smallNumbers.add(numbers[i]);
}
};
bw.write(String.valueOf(smallNumbers).replace(",","").replace("[","").replace("]",""));
bw.close();
br.close();
}
}
두 번 째 풀이 : 첫 번째 풀면서 뭔가 지저분 함... 다른 사람들 코딩 참고하여 수정
출력할 때 배열에 안 넣고 StringBuffer 이용
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int n = Integer.parseInt(st.nextToken());
int x = Integer.parseInt(st.nextToken());
int[] numbers = new int[n];
StringBuffer sb = new StringBuffer();
StringTokenizer st2 = new StringTokenizer(br.readLine()," ");
for(int i = 0 ; i < n ; i ++) {
numbers[i]=(Integer.parseInt(st2.nextToken()));
if ( numbers[i] < x ) {
sb.append(numbers[i]).append(" ");
}
};
bw.write(String.valueOf(sb));
bw.close();
br.close();
}
}
'개인공부 > 백준코딩연습' 카테고리의 다른 글
[1차원 배열] - 최댓값 (0) | 2024.08.12 |
---|---|
[1차원 배열] - 최소, 최대 (0) | 2024.08.12 |
[1차원 배열] - 개수 세기 (0) | 2024.08.12 |
[반복문] - A+B - 4 (1) | 2024.08.12 |
[반복문] - A+B - 5 (0) | 2024.08.12 |