[BOJ] 2562 최댓값 (JAVA)

joyful·2021년 4월 8일
0

Algorithm

목록 보기
32/62

✅ 문제

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수

3, 29, 38, 12, 57, 74, 40, 85, 61

이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.

✅ 입력

  • 첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.

✅ 출력

첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.

✅ 예제 1

▼ 입력

3
29
38
12
57
74
40
85
61

▼ 출력

85
8

풀이

  • 입력받은 정수를 저장할 배열을 크기 9로 생성한다.
  • 최대값순번을 저장할 변수를 선언하고 각각 배열의 첫번째 요소값과 인덱스로 초기화 한다.
  • for문 이용
    - BufferedReader.readLine()으로 정수를 입력받는다.
    - 배열의 요소값을 비교한다.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int[] num = new int[9];	// 정수를 저장할 배열 생성
		
		for(int i=0; i<9; i++) {
			num[i] = Integer.parseInt(br.readLine());	// 한 줄에 정수 한 개씩 입력
		}
		
		int max = num[0];	// 최댓값을 배열의 첫번째 값으로 초기화
		int idx = 0;	// 최댓값의 순번을 배열의 첫번째 인덱스로 초기화
		
		for(int i=1; i<num.length; i++) {	// 두번째 요소부터 마지막 요소까지
			if(num[i] > max) {	// 배열의 요소가 최댓값보다 크다면
				max = num[i];	// 최대값 갱신
				idx = i;	// 순번 갱신
			}
		}
		
		System.out.println(max);
		System.out.println(idx+1);	// 인덱스는 0부터 시작하므로 +1 해줘야 함
	}
}
profile
기쁘게 코딩하고 싶은 백엔드 개발자

0개의 댓글