celina의 이것저것

[C++] 백준 5576번 - 콘테스트 본문

자료구조&알고리즘/백준

[C++] 백준 5576번 - 콘테스트

celinayk 2023. 3. 20. 17:13
반응형

문제

최근 온라인에서의 프로그래밍 콘테스트가 열렸다. W 대학과 K 대학의 컴퓨터 클럽은 이전부터 라이벌 관계에있어,이 콘테스트를 이용하여 양자의 우열을 정하자라는 것이되었다.
이번이 두 대학에서 모두 10 명씩이 콘테스트에 참여했다. 긴 논의 끝에 참가한 10 명 중 득점이 높은 사람에서 3 명의 점수를 합산하여 대학의 득점으로하기로 했다.
W 대학 및 K 대학 참가자의 점수 데이터가 주어진다. 이때, 각각의 대학의 점수를 계산하는 프로그램을 작성하라.

입력

입력은 20 행으로 구성된다. 1 번째 줄부터 10 번째 줄에는 W 대학의 각 참가자의 점수를 나타내는 정수가 11 번째 줄부터 20 번째 줄에는 K 대학의 각 참가자의 점수를 나타내는 정수가 적혀있다. 이 정수는 모두 0 이상 100 이하이다.

출력

W 대학 점수와 K 대학의 점수를 순서대로 공백으로 구분하여 출력하라.

접근

또 직접 정렬을 구현하려다가 걍 내장함수를 썼다 문제만 풀면되니까 

코드

#define _CRT_SECURE_NO_WARNINGS
#include <iostream> 
#include <algorithm>
#include <string>
#include <vector>
#include <math.h>
#include <cmath>
#include <cstring>
using namespace std;
#define all(x) (x).begin(), (x).end() 


int main() {

    vector<int> w(10);
    vector<int> k(10);
    
    for (int i = 0; i < 10; i++) {
        scanf("%d", &w[i]);      
    }
    for (int i = 0; i < 10; i++) {
        scanf("%d", &k[i]);       
    }

    sort(all(w));
    sort(all(k));

    int w_sum = 0;
    int k_sum = 0;

    for (int i = 7; i < 10; i++) {
        w_sum += w[i];
    }
    for (int i = 7; i < 10; i++) {
        k_sum += k[i];
    }
    printf("%d ", w_sum);
    printf("%d", k_sum);
    

    return 0;
}

리뷰

아 처음에 계속 sort부분에서 오류가 나서 뭐지 계속 찾다가 원인을 알았다

지금은 벡터로 풀엇지만 처음엔 배열로 풀엇는데 배열에다가 .begin() 벡터 메소드를 써서 오류가 난거였따

어이없음...ㅋㅋ 벡터로 바꿔줬다 

배열로 계속 할거면 sort(w, w+10)이렇게 하면됨 

 

출처 

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

 

5576번: 콘테스트

최근 온라인에서의 프로그래밍 콘테스트가 열렸다. W 대학과 K 대학의 컴퓨터 클럽은 이전부터 라이벌 관계에있어,이 콘테스트를 이용하여 양자의 우열을 정하자라는 것이되었다. 이번이 두 대

www.acmicpc.net

 

Comments