프로그래머스 LEVEL 2(테이블 해시 함수)

image

  • 사용 언어 : javascript

  • 해결 날짜 : 2022-12-26

  • 해결 방법 :

    • 문제의 조건에 맞게 정렬
      • 조건 : 테이블의 튜플을 col번째 컬럼의 값을 기준으로 오름차순 정렬을 하되, 만약 그 값이 동일하면 기본키인 첫 번째 컬럼의 값을 기준으로 내림차순 정렬합니다.
    • 정렬 후 row_begin부터 row_end까지 i 번째 행의 튜플에 대해 각 컬럼의 값을 i 로 나눈 나머지들의 합을 XOR하여 answer update
  • 회고 :

    • x
  • 코드

    function solution(data, col, row_begin, row_end) {
      let answer = 0;
      const sortedData = data.sort((a, b) => {
        if (a[col - 1] === b[col - 1]) return b[0] - a[0];
        return a[col - 1] - b[col - 1];
      });
    
      for (let i = row_begin; i <= row_end; i++) {
        answer ^= sortedData[i - 1].reduce((acc, cur) => acc + (cur % i), 0);
      }
    
      return answer;
    }
    
  • 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges