300x250
https://www.acmicpc.net/problem/10871
문제
분석
입력 : 첫째 줄에 N과 X가 주어짐. 둘째 줄에 수열을 이루는 A가 있음.
출력 : A에서 X보다 작은 수를 입력받은 순서대로 공백(띄어쓰기)으로 구분해 출력한다.
풀이
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
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형으로 형변환
int X = Integer.parseInt(st.nextToken());
int[] arr = new int[N]; // 배열 생성
st = new StringTokenizer(br.readLine()," ");
for(int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(st.nextToken()); // 배열에 수열 A 값을 담아줌
}
for(int i = 0; i < arr.length; i++) {
if(arr[i] < X){ // 배열에 있는 수열과 X 값 비교
bw.write(arr[i] + " "); // X보다 작은 값 출력
}
}
br.close();
bw.flush();
bw.close();
}
}
BufferedReader 를 이용해 풀어준 문제이다.
배열을 이용해 풀어 주었다.
풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int X = sc.nextInt();
int[] arr = new int[N];
for(int i = 0; i < arr.length; i++){
arr[i] = sc.nextInt();
}
for(int i = 0; i < arr.length; i++){
if(arr[i] < X){
System.out.print(arr[i] + " ");
}
}
}
}
Scanner 를 이용해 풀어준 문제이다.
arr[i] = sc.nextInt(); 로 배열에 수열 A 값들을 담고, 다시 N의 길이만큼 반복문을 돌려
배열 안에 있는 수열 값들을 X와 대조해서 작은 값들을 찾아내는 방법이다.
Buffered와 Scanner의 차이가 궁금하시면 들어가보세요
300x250
'Progamming > BAEK JOON > 백준의 알고리즘' 카테고리의 다른 글
[백준] 2562번 : 최댓값 - JAVA (0) | 2023.03.07 |
---|---|
[백준] 10818번 : 최소, 최대 - JAVA (0) | 2023.03.07 |
[백준] 10807번 : 개수 세기 - JAVA 배열 (0) | 2023.03.06 |
[백준] 10951번 : A+B - 4 - JAVA (0) | 2023.03.06 |
[백준] 10952번 : A+B - 5 - JAVA (0) | 2023.03.03 |