코딩 테스트/백준

[백준2526/JAVA] 최댓값

리져니 2021. 7. 5. 14:42

문제

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

예를 들어, 서로 다른 9개의 자연수

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

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

입력

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

출력

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

예제 입력 

3

29

38

12

57

74

40

85

61

예제 출력 

85

8

출처

Olympiad > 한국정보올림피아드 > 한국정보올림피아드시․도지역본선 > 지역본선 2007 > 초등부 1번

  • 데이터를 추가한 사람: sait2000

 


제출

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


public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int[] arr = new int[9];

        for(int i=0;i<9;i++){
            arr[i] = Integer.parseInt(br.readLine());
        }

        int max = 0;
        int index = 0;

        for(int i=0;i<9;i++){
            if(max < arr[i]){
                max = arr[i];
                index = i+1;
            }
        }

        System.out.println(max);
        System.out.print(index);

    }
}

 

풀이

 int[] arr = new int[9];

주어진 문제 설명에 9개의 숫자를 입력 받는다고 하였기때문에 9개의 값을 저장할 배열을 선언

 

   for(int i=0;i<9;i++){
            arr[i] = Integer.parseInt(br.readLine());
        }

입력받은 9개의 숫자를 br.readLine()을 통해 배열에 넣어준다.

 

        int max = 0;
        int index = 0;

max : 최대값을 저장할 변수,

index : 최대값이 들어있는 인덱스를 나타내는 변수 

 

모두 0으로 초기화 하여 선언해준다.

 

 for(int i=0;i<9;i++){
            if(max < arr[i]){
                max = arr[i];
                index = i+1;
            }
        }

9개의 숫자가 들어있는 배열의 각 인덱스(0부터 8까지)를 돌면서 제일 큰값을 max변수에 대입하고, 해당 인덱스값에 1을 더한 값(배열의 인덱스는 0으로 시작하고 우리가 출력해야하는 값은 '몇번째'인지를 출력해야 함으로)을 index변수에 대입하여 최대값이 배열의 몇번째에 위치해 있는지를 나타낸다.

 

결과

728x90

'코딩 테스트 > 백준' 카테고리의 다른 글

[백준2675/JAVA] 문자열 반복  (0) 2021.07.09
[백준2577/JAVA] 숫자의 개수  (0) 2021.07.08
[백준10871/JAVA] X보다 작은 수  (0) 2021.07.05
[백준10818/JAVA] 최소, 최대  (0) 2021.07.05
[백준2475/JAVA] 검증수  (0) 2021.06.30