ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ 2953 ] 나는 요리사다 - array, vector
    알고리즘/BOJ 2021. 7. 27. 14:09

    < array, vector > - < solve등급 >

     

    [ 2953 ]

    나는 요리사다

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

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

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

     

    :: 입력

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

    :: 출력

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


     

    - try 1 

    : 점수를 입력받으면서 total에 더해주고 그 값을 max와 비교해서 더 큰 경우 max의 값을 바꿔줌

    max를 pair로 만들어서 참가자의 번호도 함께 변경해줌

     

      정답  코드  

    #include <string>
    #include <vector>
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    #define endl "\n"
    
    int main() {
    	int score[5][4];
    
    	pair<int, int> max = {0, 0};
    	int total = 0;
    
    	for (int i = 0; i < 5; i++) {
    		total = 0;
    		for (int j = 0; j < 4; j++) {
    			cin >> score[i][j];
    			total += score[i][j];
    		}
    		if (total > max.second ) { 
    			max.first = i;
    			max.second = total; }
    	}
    
    	cout << max.first+1 << " " << max.second << endl;
    }

     

      정답  코드  

    #include<cstdio>
    
    int n, s, m, k, i, j;
    
    main() {
    	for (; i < 5; i++) {
    		
            s = 0;
            
    		for (j = 0; j < 4; j++) {
    			scanf("%d", &n); s += n;
    		}
            
    		if (m < s) { m = s; k = i + 1; }
    	}
        
    	printf("%d %d", k, m)
    }

     

준생e