[프로그래머스] Lv2. 테이블 해시 함수- JavaScript

이상돈·2023년 6월 18일
0
post-thumbnail

문제분류 : 코팅테스트 연습

난이도 : Level 2

출처 : 프로그래머스 - 테이블 해시 함수

문제

제한사항

📌 내가 생각한 풀이

문제 조건에 주어진대로 sort한 뒤 비트 연산자(^)를 이용하여 연산을 시행하자.
function solution(data, col, row_begin, row_end) {
    let sorted = data.sort((a,b)=>{
        if(a[col-1] === b[col-1]){
            return b[0] > a[0] ? 1 : -1
        }else{
            return a[col-1] > b[col-1] ? 1 : -1
        }
    })
    let result = [];
    sorted.forEach((d,i)=>{
        let val = d
        if(i+1 >= row_begin && i+1 <= row_end){
            let sum = 0;
            d.forEach((data,idx)=>{
                sum += data%(i+1)
            })
            result.push(sum);
        }
    })
    let a = result[0];
    for(var i =1; i<result.length; i++){
        a =  a^ result[i];
    }
    return a;

}

📌 느낀점

js 내에는 비트연산자(^)가 존재하므로, 주어진 조건에 맞게 sort만 잘하면 비교적 매우 쉽게 풀수있었던 문제였다.

profile
사람들의 더 나은 삶을 위한 개발자

0개의 댓글