티스토리 뷰

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int column;

bool cmp(vector<int>&v1, vector<int>&v2)
{
    if(v1[column] == v2[column]) return v1[0] > v2[0];
    return v1[column] < v2[column];
}
int solution(vector<vector<int>> data, int col, int row_begin, int row_end) {
    int answer = 0;
    column = col-1;
    
    sort(data.begin(), data.end(), cmp);
    
    for(int i=row_begin; i<=row_end; i++)
    {
        int sum = 0;
        for(int j=0; j<data[0].size(); j++)
        {
            sum += (data[i-1][j] % i) ;
        }
        answer ^= sum;
    }
    return answer;
}

 

주어진 조건을 차근차근 풀면 되는 문제이다.

다만 인덱스를 주의해서 풀어주어야 한다.

 

col 번째 컬럼의 값을 기준으로 정렬 할 때, 벡터는 0부터 시작하지만 col 값은 1부터 시작한다.

따라서 정렬할 때는 col-1한 값을 통해 정렬을 해야한다.

마찬가지로 3번 조건을 통해 누적합을 구해줄 때도 data[i-1][j]을 하여 row_begin ~ row_end 값과 인덱스 차이에 주의하여햐 한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함