Algorithm/백준
Backjoon(백준) 10818번 -최소, 최대(Java)
GrapeMilk
2020. 2. 12. 20:37
문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
예제 입력 1
5
20 10 35 30 7
예제 출력 1
7 35
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int min = 1000000;
int max = -1000000;
int n = sc.nextInt();
int[] numbers = new int[n];
for(int i = 0; i < n; i++){
numbers[i] = sc.nextInt();
if (max < numbers[i]) {
max = numbers[i];
}
if (min > numbers[i]) {
min = numbers[i];
}
} //for문종료
System.out.println(min + " " + max);
}//메인메소드종료
}//클래스종료
* 요점
- 백준에서 입력을 띄어쓰기로 요구하는 경우가 있는데, nextInt()나 readLine()을 제대로 이해하지 못하는 사람들은 '띄어쓰기 어떻게 입력을 받지?' 하고 생각할 수도 있다. 혹시나 입력받는 방식의 차이가 궁금한 사람은 ( 참고 ) 링크를 참고하기 바란다.
- if문의 조건 잘 생각해보기 (최대 최소값을 판단할 때 단순히 함수를 이용해서 판단하는게 아니라 직접 알고리즘을 어떻게 짜서 최대 최소를 표현할 지 생각해보기)