C++:: 프로그래머스 <테이블 해시 함수>

jahlee·2023년 3월 23일
0

프로그래머스_Lv.2

목록 보기
15/106
post-thumbnail

col 번째 컬럼값들을 기준으로 정렬하고 주어지는 매개변수 row_begin 에서 row_end까지 조건을 만족시켜준 값들의 xor값을 구하면 되는 문제이다.

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int idx;

int compare(vector<int> a, vector<int> b)
{
    if (a[idx] == b[idx]) return a[0] > b[0];
    return a[idx] < b[idx];
}
int solution(vector<vector<int>> data, int col, int row_begin, int row_end)
{
    int answer = 0;
    idx = col - 1;
    sort(data.begin(), data.end(), compare);//조건대로 정렬
    vector<int> s;
    for(int i=row_begin-1;i<=row_end-1;i++)
    {
        int num = 0;
        for(int j=0;j<data[i].size();j++)//문제 조건에 따른 실행
            num += data[i][j] % (i+1);
        s.push_back(num);
    }
    answer = s[0];
    for(int i=1;i<s.size();i++)//xor 연산
        answer = answer ^ s[i];
    return answer;
}

0개의 댓글