728x90
728x90

문제

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

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

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

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

 

입력

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

 

출력

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

 

예제 입력 1 

3
29
38
12
57
74
40
85
61

 

예제 출력 1

85
8

 

출처

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

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

 

알고리즘 분류

  • 구현

 

문제 출처

https://www.acmicpc.net/problem/2562

 

2562번: 최댓값

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

www.acmicpc.net

 


 

문제 해결 방법

  • 크기가 9인 배열에 9개의 값을 넣은 후, 최댓값을 찾는다.
    • 이와 동시에 index 변수에 배열에서 최댓값에 해당하는 값의 인덱스를 넣는다.
    • 최댓값을 찾을 때 반드시 등호를 <= 로 해준다.
      • if (max <= ary[i]) { }
  • 최종적으로 최댓값과 index 변수가 출력되도록 한다. 

 

코드

#include <iostream>
using namespace std;

#define N 9

int main() {
    cin.tie(NULL);
    cout.tie(NULL);
    ios_base::sync_with_stdio(false);

    int ary[N], max, index;

    for (int i = 0; i < N; i++) {
        cin >> ary[i];
    }

    max = ary[0];

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

    cout << max << '\n' << index << '\n';

    return 0;
}

 

채점 결과

 

참고

  • [단계별로 풀어보기] > [1차원 배열]

 

728x90
728x90

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ-8959][C++] OX퀴즈  (0) 2022.07.10
[BOJ-1546][C++] 평균  (0) 2022.07.10
[BOJ-3052][C++] 나머지  (0) 2022.07.10
[BOJ-2577][C++] 숫자의 개수  (0) 2022.07.10
[BOJ-10818][C++] 최소, 최대  (0) 2022.07.10
[BOJ-1110][C++] 더하기 사이클  (0) 2022.07.09
[BOJ-10951][C++] A+B - 4  (0) 2022.07.09
[BOJ-10952][C++] A+B - 5  (0) 2022.07.09