SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제:
입력 값에서 가장 많이 나온 수를 출력합니다. 같은 횟수로 나오면 더 큰 값을 출력합니다.
입력 값의 점수를 인덱스로 사용해서 횟수를 셉니다.
처음엔 입력 값을 정렬 해야 하는 줄 알았는데 그럴 필요가 없었습니다.
#include <iostream>
using namespace std;
int main(int argc, char** argv){
int test_case;
int T;
cin>>T;
int input[1000];
int score[100];
int caseNum = 1;
for(test_case = 1; test_case <= T; ++test_case){
fill_n(input, 1000, -1);
fill_n(score, 100, -1);
int i = 0;
for(i; i<1000; i++){
cin >> input[i];
score[input[i]]++;
}
int answer=0, best = 0;
for(i; i<100; i++){
if(score[i] >= best){
best = score[i];
answer = i;
}
}
cout << '#' << caseNum << ' ' << answer << endl;
++caseNum;
}
return 0;
}
코드:
배열 선언 후 나중에 초기화 할 때 사용하는 함수를 배웠습니다.
fill_n 함수로 iostream에 포함 돼있습니다, fill_n(배열 이름, 배열 자리수, 초기화 값); 이렇게 사용합니다.
score에는 정상적으로 값이 나오는데, answer이 0만 출력 되네요.
-----------------------------------------------------------------------------------------------------------------------------------
집에 가서 다시 해보겠습니다.
'알고리즘 > SW Expert Academy' 카테고리의 다른 글
201004 [S/W 문제해결 기본] 2일차 - Sum (C++) / 틀림 (0) | 2020.10.09 |
---|---|
200923 [SW Expert Academy] 지그재그 숫자 1986번(C++) (0) | 2020.09.23 |
200916 [S/W 문제해결 기본] 1일차 - Flatten(C++) / 틀림 (0) | 2020.09.15 |