본문 바로가기
알고리즘

프로그래머스 테이블 해시 함수

by eunyoung 2023. 4. 24.

난이도


LV2

 

 

 

풀이


자바 풀이

 

import java.util.*;

class Solution {
    public int solution(int[][] data, int col, int row_begin, int row_end) {
        int answer = 0;
        
        col = col-1;
        
        int finalcol = col;
        
        Arrays.sort(data,(o1,o2)->{
            if(o1[finalcol]==o2[finalcol]) return o2[0]-o1[0];
            return o1[finalcol]-o2[finalcol];
        });
        
        
        for(int i = row_begin-1; i<row_end; i++){
            int x = i+1;
            int dataTotal = Arrays.stream(data[i])
                .map(j->j%x)
                .sum();
            
            answer = (answer ^ dataTotal);
        }
        
        return answer;
    }
}

 

 

파이썬 풀이

def solution(data, col, row_begin, row_end):
    answer = 0
    
    data.sort(key=lambda x:(x[col-1],-x[0]))
    
    for i in range(row_begin,row_end+1):
        idx=i-1
        result=0
        for a in data[idx]:
            result+=a%i
        
        answer = answer ^ result
    
    return answer

 

 

 

문제 링크


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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr