본문 바로가기

백준

백준2562

반응형

1. 문제

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

예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.

2. 입력

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

3. 출력

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

4. 예제

예제 입력1>

3
29
38
12
57
74
40
85
61

예제 출력1>

85
8

5. 학습 내용

1) for문 활용

2) 배열 및 index 이해

6. 작성 코드 (기능별 접근)

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

public class Main {
    public static void main(String[] args) throws IOException {
    	
        // 입력부
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
        // 배열 생성 (크기: 9)
        int[] numbers = new int[9];
        for (int i = 0; i < 9; i++) { // 배열 초기화 작업
            numbers[i] = Integer.parseInt(br.readLine());
        }
		
        // maxIndex, maxValue 변수 생성 및 초기화
        int maxIndex = findMaxIndex(numbers);
        int maxValue = numbers[maxIndex];
		
        // 출력부
        System.out.println(maxValue);
        System.out.println(maxIndex + 1);
    }
	
    // 기능부
    // findMaxIndex 메소드 생성 (인수: 배열, 반환: maxIndex(타입: int))
    // maxValue = maxIndex값 초기화 선행 후, 해당 index에 저장되어 있는 값
    public static int findMaxIndex(int[] numbers) {
        // maxIndex, maxValue 변수 생성 및 초기화
        int maxIndex = 0;
        int maxValue = numbers[0];
        
        // 순차 비교 후, 조건에 부합하면 maxValue, maxIndex 초기화 진행
        for (int i = 1; i < numbers.length; i++) {
            if (numbers[i] > maxValue) {
                maxValue = numbers[i];
                maxIndex = i;
            }
        }
        return maxIndex; // Index 반환
    }
}

 

반응형

'백준' 카테고리의 다른 글

백준10813  (0) 2023.05.23
백준10810  (0) 2023.05.22
백준10818  (0) 2023.05.19
백준10871  (0) 2023.05.19
백준10807  (0) 2023.05.17