본문 바로가기

Programming/ACMICPC

ACMICPC 2822 점수 계산

문제

상근이는 퀴즈쇼의 PD이다. 이 퀴즈쇼의 참가자는 총 8개 문제를 푼다. 참가자는 각 문제를 풀고, 

그 문제를 풀었을 때 얻는 점수는 문제를 풀기 시작한 시간부터 경과한 시간과 난이도로 결정한다. 

문제를 풀지 못한 경우에는 0점을 받는다. 참가자의 총 점수는 가장 높은 점수 5개의 합이다. 

상근이는 잠시 여자친구와 전화 통화를 하느라 참가자의 점수를 계산하지 않고 있었다. 

참가자의 8개 문제 점수가 주어졌을 때, 총 점수를 구하는 프로그램을 작성하시오.

입력

8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 

모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문제, ... 8번 문제이다.

출력

첫째 줄에 참가자의 총점을 출력한다. 둘째 줄에는 어떤 문제가 최종 점수에 포함되는지를 공백으로 구분하여 출력한다. 

출력은 문제 번호가 증가하는 순서이어야 한다.


문제가 쓸데없이 길기만 하지 결론은 8개의 숫자 중 가장 큰 5개의 숫자를 더한 값을 출력하고, 그 5개의 숫자가 몇번째

입력이었는지 알아내기만 하면 된다.


이때에 입력이 0 ~ 150까지로 매우 작으므로, 크기 151의 배열을 만들어서 어떤 숫자가 나왔는지 체크 하는게 8개 중 큰

5개를 고르는 것보다 쉽다.


어려운 문제가 아님에도 계속해서 오답이 나와서 이유를 찾느라 30분이 넘는 시간이 걸렸었는데 결론부터 말하자면 

배열을 선언할때 초기화를 안해줘서 그랬다. 당연하게 0으로 초기화 될 줄 알았는데 이는 전역 변수에만 해당한다고 하니 

가능하면 선언할 때 초기화도 함께 해주는 습관을 들이는 것이 좋을 것 같다.




'Programming > ACMICPC' 카테고리의 다른 글

ACMICPC 2851 슈퍼 마리오  (0) 2017.02.15
ACMICPC 2480 주사위 세개  (0) 2017.02.15
ACMICPC 6064 카잉 달력  (1) 2017.02.14
ACMICPC 1475 방 번호  (0) 2017.02.14
ACMICPC 1011 Fly me to the Alpha Centauri  (0) 2017.01.30