학이시습

[백준] 10818 - 최소, 최대 (Java) 본문

Coding test/BAEKJOON

[백준] 10818 - 최소, 최대 (Java)

dbswndud 2024. 4. 6. 00:18


문제 링크

https://www.acmicpc.net/problem/10818

 

10818번: 최소, 최대

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

www.acmicpc.net


문제 설명

N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

 

작성한 코드

import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int input[] = new int[N];
        int max, min;

        for(int i = 0; i < N; i++) {
            input[i] = sc.nextInt();
        }

        max = input[0];
        min = input[0];

        for(int i = 0; i < N; i++) {
            if(max < input[i])
                max = input[i];
            if(input[i] < min)
                min = input[i];
        }
        System.out.println(min + " " + max);        
    }
}

 

풀이

  • 스캐너를 쓰기 위해 임포트, 생성합니다.
  • N을 입력받습니다. 
  • N개의 정수를 입력받기 위해 N크기의 배열을 선언합니다.
  • 최소, 최대를 저장하기 위한 변수를 생성합니다.
  • N만큼 for문을 반복합니다.
    • N만큼 반복하여 정수들을 입력받습니다.
  • 값을 비교하여 최소, 최대를 찾기 위해 min, max에 첫 번째로 입력한 정수를 넣습니다.
  • 입력받은 정수를 모두 비교해보기 위해 N만큼 반복합니다.
    • 만약 i번째의 input 값이 max의 값보다 크다면 max에 1번째의 input 값을 저장합니다.
    • 만약 i 번째의 input 값이 min의 값보다 작다면 min에 1번째의 input 값을 저장합니다.
  • min 값과 max 값을 공백을 두고 출력합니다.