![[백준] 10818 - 최소, 최대](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxmDWg%2Fbtsy3Nm9cWc%2FzBuOePChiqYmT5qmXlikek%2Fimg.png)
[백준] 10818 - 최소, 최대알고리즘/백준2023. 10. 24. 22:41
Table of Contents
문제
접근방법 & 풀이
최대값과 최소값을 구하는 문제입니다.
먼저 배열의 길이를 N으로 설정해주고, for문을 통해 N길이 배열의 값을 인덱스에 넣어줍니다.
이후 최대값은 max, 최소값은 min으로 변수를 선언해주고 해당 변수들을 배열의 첫번째 인덱스 값으로 초기화 해줍니다.
int max = arr[0];
int min = arr[0];
max와 min의 값을 0이 아니라 인덱스의 첫번째 값으로 초기화해주는 이유는 코드를 직접 머리속으로 돌려보시면 알 수 있습니다.
min의 값을 0으로 초기화해준다면 0은 양수 중에서 가장 작은 값이기때문에 어떤 값과 비교를 해도 min은 0이되기 때문입니다.
그 다음 each for문을 사용하여 값을 비교하고 최대값과 최소값을 추출해내는 구문입니다.
for(int tmp : arr) {
if(tmp > max) {
max = tmp;
}else if(tmp < min) {
min = tmp;
}
}
여기서 tmp는 arr배열의 인덱스0~N까지 돌아가며 tmp에 해당 인덱스의 값을 넣어줍니다.
그렇게 받은 tmp값을 이용하여 max,min과 비교하여 조건식을 검토하고 조건식이 true이면 해당 실행문을 실행합니다.
코드
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException{
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] arr = new int[N];
for(int i=0; i<arr.length; i++) {
arr[i] = sc.nextInt();
}
int max = arr[0];
int min = arr[0];
for(int tmp : arr) {
if(tmp > max) {
max = tmp;
}else if(tmp < min) {
min = tmp;
}
}
System.out.println(min + " " + max);
}
}
정리
혹시라도 이해안되시는 부분이 있다면 댓글을 남겨주세요!
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2562 - 최댓값 (0) | 2023.10.25 |
---|---|
[백준] 10871 - X보다 작은 수 (0) | 2023.10.24 |
[백준] 10807 - 개수 세기 (1) | 2023.10.24 |
[백준] 10951 - A + B-4 (0) | 2023.10.20 |
[백준] 10952 - A + B-5 (0) | 2023.10.20 |
@leegeonwoo :: geonwoo
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!