문제 풀이/[JAVA_자바] 백준

[JAVA / 자바] 백준 10818번 - 최소, 최대

Seunghyun_KO 2021. 12. 6. 09:00
728x90
반응형

문제

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


입력

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


출력

첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.


 


문제 접근 방법

첫 번째 입력되는 숫자를 최댓값 혹은 최솟값이라 가정하고 이후 입력되는 숫자를 비교하여 내가 처음 가정한 숫자보다 더 크면 최댓값을 바꿔주고 더 작으면 최솟값을 바꿔주면서 마지막 숫자까지 비교를 마치면 그때의 최댓값과 최솟값을 출력해주면 되는 문제이다.

1. if문 사용

2. Math클래스 함수 사용(Math.min, Math.max)


JAVA 코드 풀이

1. if문 사용

import java.util.*;

public class Main{
    public static void main(String args[]){
        Scanner input = new Scanner(System.in);
        int size = input.nextInt(); //주어질 정수의 개수
        int num;
        int min = input.nextInt(); //최초 입력 숫자를 최소값이라 가정한다
        int max = min; // 최초 입력 숫자를 최대값이라 가정한다
        for (int i=1; i<size; i++){
            num = input.nextInt(); //두번째 이후 입력 숫자를 저장한다
            if(max < num) //두번째 이후 입력 숫자가 내가 처음 가정한 최대값보다 큰지 확인하여 더 크면 최대값을 바꿔준다
                max = num;
            else if(min > num) //두번째 이후 입력 숫자가 내가 처음 가정한 최소값보다 작은지 확인하여 더 작으면 최소값을 바꿔준다
                min = num;
        }
        System.out.printf("%d %d", min, max);
    }
}

(if문 사용)코드 실행 결과

2. Math클래스 함수 사용

import java.util.*;

public class Main{
    public static void main(String args[]){
        Scanner input = new Scanner(System.in);
        int size = input.nextInt(); //주어질 정수의 개수
        int num;
        int min = input.nextInt(); //최초 입력 숫자를 최소값이라 가정한다
        int max = min; // 최초 입력 숫자를 최대값이라 가정한다
        for (int i=1; i<size; i++){
            num = input.nextInt(); //두번째 이후 입력 숫자를 저장한다
            min = Math.min(min, num); //두번째 이후 입력 숫자가 내가 처음 가정한 최대값보다 큰지 확인하여 더 크면 최대값을 바꿔준다
            max = Math.max(max, num); //두번째 이후 입력 숫자가 내가 처음 가정한 최소값보다 작은지 확인하여 더 작으면 최소값을 바꿔준다
        }
        System.out.printf("%d %d", min, max);
    }
}

(Math클래스 함수 사용)코드 실행 결과


후기

if문을 사용하던 Math클래스에 내장된 함수를 사용하던 성능면에서는 큰 차이는 없다. 취향에 따라 본인이 편한 것을 사용하면 좋을 것 같다.


문제 원본

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

 

728x90
반응형