https://www.acmicpc.net/problem/2953
"나는 요리사다"는 다섯 참가자들이 서로의 요리 실력을 뽐내는 티비 프로이다. 각 참가자는 자신있는 음식을 하나씩 만들어오고, 서로 다른 사람의 음식을 점수로 평가해준다. 점수는 1점부터 5점까지 있다.
각 참가자가 얻은 점수는 다른 사람이 평가해 준 점수의 합이다. 이 쇼의 우승자는 가장 많은 점수를 얻은 사람이 된다.
각 참가자가 얻은 평가 점수가 주어졌을 때, 우승자와 그의 점수를 구하는 프로그램을 작성하시오.
총 다섯 개 줄에 각 참가자가 얻은 네 개의 평가 점수가 공백으로 구분되어 주어진다. 첫 번째 참가자부터 다섯 번째 참가자까지 순서대로 주어진다. 항상 우승자가 유일한 경우만 입력으로 주어진다.
첫째 줄에 우승자의 번호와 그가 얻은 점수를 출력한다.
각각 한줄에 1명씩 총 20개의 입력이 들어오기 때문에 숫자만 받아서 5개의 크기를 가지는 sum배열에 각 참가자의 점수의 합만 저장한다.
max와 idx변수를 선언해서 sum배열을 반복문을 활용해서 가장 큰 값을 max를 이용해서 구하고 그 때의 인덱스 값을 idx에 저장한다.
max와 idx를 출력한다.
#include <stdio.h>
#define size 4
#define sumSize 5
int sum[sumSize];
int main(){
for(int i = 0; i < sumSize; i++){
for(int j = 0; j < size; j++){
int num = 0;
scanf("%d",&num);
sum[i] += num;
}
}
int max = sum[0],idx = 1;
for(int i = 0; i < sumSize; i++){
if(max < sum[i]){
max = sum[i];
idx = i + 1;
}
}
printf("%d ",idx);
printf("%d\n",max);
return 0;
}
굳이 마지막에서 반복문을 사용해서 max와 idx값을 구하지 않고 입력을 받음과 동시에 구할 수 있게 수정할 수 있을 것 같다.