# 문제
- 주소: https://www.acmicpc.net/problem/10818
- 입력 받은 값의 최솟값, 최댓값 구하기.
# 코드
▼ 코드-1
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
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));
int N = Integer.parseInt(br.readLine());
String[] input = br.readLine().split(" ");
int max = Integer.parseInt(input[0]);
int min = Integer.parseInt(input[0]);
for (int i = 0; i < N; i++) {
int number = Integer.parseInt(input[i]);
if (number > max) max = number;
if (number < min) min = number;
}
bw.write(min + " " + max);
bw.flush();
bw.close();
br.close();
}
}
▼ 코드-2
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
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));
int N = Integer.parseInt(br.readLine());
int[] numbers = Arrays.stream(br.readLine().split(" "))
.limit(N)
.mapToInt(Integer::parseInt)
.toArray();
int max = numbers[0];
int min = numbers[0];
for (int i = 0; i < N; i++) {
if (numbers[i] > max) max = numbers[i];
if (numbers[i] < min) min = numbers[i];
}
bw.write(min + " " + max);
bw.flush();
bw.close();
br.close();
}
}
# 입/출력 결과
▼ 코드-1 입/출력 결과
▼ 코드-2 입/출력 결과
# 과정
▼ 코드-1 과정
- BufferedReader + InputStreamReader 클래스를 사용하여 입력값 받기.
- BufferedWriter + OutputStreamWriter 사용해서 출력하기.
- int N에 몇 개 정수 받을지 입력값 받아서 젖아.
- String[] input에 입력값 받아서 공백 기준으로 나누어서 저장.
- int[] numbers에 N개 배열 생성.
- int max와 int min에 input의 0번째 값 저장.
- for문 사용하여 계산
- : numbers[i]에 input[i] 값 저장.
- : if문 사용하여 numbers[i] 가 max보다 크면 max에 numbers[i] 저장.
- : numbers[i]가 min 보다 작으면 min에 numbers[i] 저장.
- for문 밖에서 bw.write() 사용하여 데이터 모아두기
- bw.flush()사용하여 출력하고 데이터 비우기.
- bw와 br에 .close()하여 종료하기.
▼ 코드-2 과정
- BufferedReader + InputStreamReader 클래스를 사용하여 입력값 받기.
- BufferedWriter + OutputStreamWriter 사용해서 출력하기.
- int N에 몇 개 정수 받을지 입력값 받아서 젖아.
- int[] numbers에 Arrays 사용하기
- : .stream()에 입력값 받는데, 공백기준으로 나누기.
- : .mapToInt(Integer::parseInt) 사용하여 숫자형태로 변환.
- : .toArray() 사용하여 배열로 저장.
- int max와 int min에 numbers의 0번째 값 저장.
- for문 사용하여 계산
- : if문 사용하여 numbers[i]가 max보다 크면 max에 numbers[i] 저장.
- : numbers[i]가 min 보다 작으면 min에 numbers[i] 저장.
- for문 밖에서 bw.write() 사용하여 데이터 모아두기
- bw.flush()사용하여 출력하고 데이터 비우기.
- bw와 br에 .close()하여 종료하기.
# 느낀 점
- 문제를 푸는데 시간이 조금 걸렸다. 최솟값과 최댓값을 구하는데 처음에 내가 입력받은 첫번째 원소를 가지고 두번째 원소랑 비교하면서 하면 될 거 같다는 생각에 문제를 풀었다.
'코딩 테스트' 카테고리의 다른 글
[코딩테스트] 백준 10810번: 공 넣기 (0) | 2025.05.21 |
---|---|
[코딩테스트 ] 백준 2562번: 최댓값 (0) | 2025.05.20 |
[코딩테스트] 백준 10871번: X보다 작은 수 (0) | 2025.05.19 |
[코딩테스트] 백준 10807번: 개수 세기 (0) | 2025.05.19 |
[코딩테스트] 백준 10951번: A+B - 4 (0) | 2025.05.16 |