관리 메뉴

cococo-coding

2592번. 대표값 (c++풀이) 본문

[BOJ] 코드 모음/C++_learning 문제집

2592번. 대표값 (c++풀이)

_dani 2023. 12. 5. 16:16

최종코드

#include <iostream>
using namespace std;

int main() {
    //1. 열 개의 10의배수들을 입력받는다.
    //2. 평균을 구한다.
    //3. 최빈값을 구한다.
    //4. 평균과 최빈값을 출력한다. 

    //1
    int n;
    int sum=0, aver=0;
    int arr[1001]={0,};
    for(int i=0; i<10; i++){
        cin >> n;
        sum+=n;      
        arr[n]++;        
    }
    //2
    aver=sum/10;

    //3
    int max=0, maxIndex=0;
    for(int j=10; j<1001; j++){
        if(max<arr[j]) {
            max=arr[j];
            maxIndex=j;
        }
    }
    

    //4
    cout << aver << endl << maxIndex << endl;
    return 0;
}

3번에서 처음에 max=arr[j]; 를 넣고 이 max를 출력했었는데 ...

이 max는 arr[j]이므로 인덱스인 j가 아니라 j가 나온 횟수만 출력하게 된다. 

ex) arr[30]이 3번 나왔으면 arr[30]=3 인데 max를 출력하게 되면 3이 나오는 불상사가 발생 .... 

 

그래서 maxIndex를 따로 생성하여 max를 받을때마다 j를 maxIndex로 넣어주는 구문을 추가하고

maxIndex를 출력하니 잘 나왔다. 

이런 소소한 부분에서 큰 차이가 나게 된다. 

2023.12.05