백준 10818 문제 풀이

김하영·2023년 3월 15일
0

문제링크 : https://www.acmicpc.net/problem/10818

사용 자료구조: ArrayList

Collections클래스로 쉽게 최대 최소 값을 구하기 위해 사용하였다.


찾아낸 규칙

그냥 다 ArrayList에 담고 Collections.max(), Collections.min()을 쓰자!


코드

n과 배열의 숫자들을 ArrayList에 입력받고 Collections.min(), Collections.max()로 최소, 최댓값을 구해 출력한다.

import java.util.ArrayList;
//import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        ArrayList<Integer> arr =  new ArrayList<>();
        for(int i = 0; i<n; i++){
            arr.add(sc.nextInt());
        }
        int max = Collections.max(arr);
        int min = Collections.min(arr);
        System.out.println(min+" "+ max);

        // 그냥 int[] + sort 사용
//        int[] arr = new int[n];
//        for(int i = 0; i<n; i++){
//            arr[i] = sc.nextInt();
//        }
//        Arrays.sort(arr);
//        int min = arr[0];
//        int max = arr[n-1];
//        System.out.println(min+" "+max);
    }
}

교훈

최대,최소문제는 다양한 풀이법이 존재한다!
int[]로 풀면 Arrays.sort(arr)해서 인덱스 처음, 끝으로 최소, 최대를 반환할 수 있다.
아니면 maxInt, minInt변수를 두고 for문을 돌면서 이 값들을 갱신하며 최대 최소를 구할 수 있다.

ArrayList로 구현하면 Collections.max(arrlist), Collections.min(arrlist)로 쉽게 구할 수 있다.

profile
백엔드 개발자로 일하고 싶어요 제발

0개의 댓글