호지

[프로그래머스] 테이블 해시 함수 문제풀이 JS 본문

알고리즘/프로그래머스

[프로그래머스] 테이블 해시 함수 문제풀이 JS

_hoji

문제만 제대로 이해하면 정렬로 풀 수 있는 문제이다.

주어진 data의 정렬기준은 col번째 index의 원소를 기준으로 내림차순 정렬이나,

해당 값이 동일할 때는 1번째 원소를 기준으로 오름차순 정렬을 하면된다.

그 후 row_begin번째 index부터 row_end번째 index의 data들의

각 값의 (값) % (index) 인 값을 모두 더한 후,

answer와 ^연산자를 통해 bit단위로 xor연산을 하면된다.

 

function solution(data, col, row_begin, row_end) {
  let answer = 0
  data.sort((e1, e2) => {
    if (e1[col - 1] === e2[col - 1]) return e2[0] - e1[0]
    else return e1[col - 1] - e2[col - 1]
  })
  for (let i = row_begin - 1; i < row_end; i++) {
    let sum = 0
    for (const d of data[i]) {
      sum += d % (i + 1)
    }
    answer = answer ^ sum
  }
  return answer
}

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

 

프로그래머스

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

programmers.co.kr

 

Comments