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문의 조건 잘 생각해보기 (최대 최소값을 판단할 때 단순히 함수를 이용해서 판단하는게 아니라 직접 알고리즘을 어떻게 짜서 최대 최소를 표현할 지 생각해보기)