(백준)2562 최댓값 풀기

DevSeoRex·2022년 6월 7일
0

백준

목록 보기
5/12
post-thumbnail

9개의 서로 다른 자연수를 입력받고, 최대 값과 그 최대 값이 몇번 째 수인지 구하는 것이 문제의 요지다.

Step1.

숫자의 순서를 구하는 문제가 포함 되어 있으므로, 가장 먼저 배열을 선언하고, 반복문으로 Scanner를 통해 9개의 숫자를 입력 받는다.

Scanner sc = new Scanner(System.in);
		int[] arr = new int[9];
		int result = 0;
		for(int i=0; i<arr.length; i++) {
			arr[i] = sc.nextInt();
		}

Step2.

Arrays.stream().max() 메서드를 이용하여 최대값을 얻어낸다.

OptionalInt opt = Arrays.stream(arr).max();
		int max = opt.getAsInt();

Step3.

반복문을 이용해서 최대값과 , 배열에 들은 값이 일치할 때의 인덱스 번호를 찾고, 인덱스 번호에 1을 더해서 출력한다. (배열의 인덱스는 0부터 시작하기 때문에 1을 더해 출력해준다)

OptionalInt opt = Arrays.stream(arr).max();
		int max = opt.getAsInt();		
		for(int i=0; i<arr.length; i++) {
			if(arr[i] == max) {
				result = (i+1);
			}
		}
		System.out.println(max);
		System.out.println(result);

전체 코드

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[] arr = new int[9];
		int result = 0;
		for(int i=0; i<arr.length; i++) {
			arr[i] = sc.nextInt();
		}		
		OptionalInt opt = Arrays.stream(arr).max();
		int max = opt.getAsInt();		
		for(int i=0; i<arr.length; i++) {
			if(arr[i] == max) {
				result = (i+1);
			}
		}
		System.out.println(max);
		System.out.println(result);		
	}
}

0개의 댓글