(백준)10818번 최소, 최대 풀기

DevSeoRex·2022년 6월 7일
0

백준

목록 보기
4/12

어느덧 백준을 풀다보니 1차원 배열이 있는 곳 까지 오게 되었다.

정수의 갯수인 N을 입력하고 N의 크기만큼 반복해서 숫자를 입력받은 뒤,
최소/최대 값을 구해서 출력하는 간단한 문제이다.

Step1.

Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int max = 0;
		int min = 0;
		int[] arr = new int[a];

몇개의 정수를 입력받을지 정하기 위해 a를 Scanner로 입력 받고, 최대 값과 최소 값을 저장할 변수 max/min을 초기화 해준다. a 크기 만큼 반복해서 정수를 넣어줄 저장소인 int형 배열 arr을 선언해준다.

Step2.

for(int i=0; i<a; i++) {
			int b = sc.nextInt();
			arr[i] = b;
		}

정수 a의 크기만큼 반복문을 반복하며, arr[] 에 입력받은 정수를 넣어준다.

Step3.

		OptionalInt max2 = Arrays.stream(arr).max();
		max = max2.getAsInt();
		OptionalInt min2 = Arrays.stream(arr).min();
		min = min2.getAsInt();
		System.out.println(min);
		System.out.println(max);

Arrays.stream(arr).max() 와 Arrays.stream(arr).min() 을 이용해서 최대,최소 값을 구해준다.

여기서 위 메서드들의 return type은 OptionalInt 이므로, max2,min2 라는 이름의 OptionalInt형 변수를 두개 선언해 주고 값을 넣어주고, getAsInt() 메서드를 이용하여 Int형으로 변환 시켜주고 출력하면 문제가 해결 된다.

전체 코드

import java.util.Arrays;
import java.util.OptionalInt;
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int max = 0;
		int min = 0;
		int[] arr = new int[a];
		for(int i=0; i<a; i++) {
			int b = sc.nextInt();
			arr[i] = b;
		}
		OptionalInt max2 = Arrays.stream(arr).max();
		max = max2.getAsInt();
		OptionalInt min2 = Arrays.stream(arr).min();
		min = min2.getAsInt();		
		System.out.println(min);
		System.out.println(max);
	}
}

0개의 댓글