[프로그래머스/C++]Lv.0 - 등수 매기기

YH J·2023년 4월 25일
0

프로그래머스

목록 보기
71/168

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/120882

시도한 방법

map에 인덱스와 평균을 보관해둔 뒤 평균을 기반으로 등수를 매긴 뒤 원래 인덱스 순서대로 넣으려했다. 그 과정에서 컨테이너를 여러개 만들고 순서매기는 과정에서 동점은 동일 등수처리하는것이 어려웠다.

내 코드

다른 사람의 풀이

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<vector<int>> score) {
    vector<int> answer;
    for(auto& s : score)
    {
        s.emplace_back(s[0] + s[1]);
    }

    for(const auto v : score)
    {
        int count = 0;
        for(const auto t : score)
        {
            count += (t[2] > v[2]);
        }
        answer.emplace_back(count + 1);
    }

    return answer;
}

다른 사람의 풀이 해석

score의 각 원소에 점수의 합을 추가한다.
다른원소의 합마다 비교해가면서 클 경우 count가 +1이된다.
0부터 시작했으므로 넣어줄 땐 +1을 해준다.
sort같은 기능 말고 한 원소를 다른 모든원소와 비교해가면서 등수를 매기는 방식 기억해둘것

profile
게임 개발자 지망생

0개의 댓글