백준 알고리즘 2953번 : 나는 요리사다

Zoo Da·2021년 5월 7일
0

백준 알고리즘

목록 보기
3/337
post-thumbnail

문제 링크

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

문제

제한
"나는 요리사다"는 다섯 참가자들이 서로의 요리 실력을 뽐내는 티비 프로이다. 각 참가자는 자신있는 음식을 하나씩 만들어오고, 서로 다른 사람의 음식을 점수로 평가해준다. 점수는 1점부터 5점까지 있다.

각 참가자가 얻은 점수는 다른 사람이 평가해 준 점수의 합이다. 이 쇼의 우승자는 가장 많은 점수를 얻은 사람이 된다.

각 참가자가 얻은 평가 점수가 주어졌을 때, 우승자와 그의 점수를 구하는 프로그램을 작성하시오.

입력

총 다섯 개 줄에 각 참가자가 얻은 네 개의 평가 점수가 공백으로 구분되어 주어진다. 첫 번째 참가자부터 다섯 번째 참가자까지 순서대로 주어진다. 항상 우승자가 유일한 경우만 입력으로 주어진다.

출력

첫째 줄에 우승자의 번호와 그가 얻은 점수를 출력한다.

예제 입력 및 출력

풀이

  1. 각각 한줄에 1명씩 총 20개의 입력이 들어오기 때문에 숫자만 받아서 5개의 크기를 가지는 sum배열에 각 참가자의 점수의 합만 저장한다.

  2. max와 idx변수를 선언해서 sum배열을 반복문을 활용해서 가장 큰 값을 max를 이용해서 구하고 그 때의 인덱스 값을 idx에 저장한다.

  3. 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값을 구하지 않고 입력을 받음과 동시에 구할 수 있게 수정할 수 있을 것 같다.

profile
메모장 겸 블로그

0개의 댓글