[Refresh ! 코딩 테스트 / js] -테이블 해시함

정대만·2025년 1월 22일

문제설명

  • sort 으로 배열 정리
  • slice 으로 배열 자르기
  • mod ==나머지 구하기
  • XOR (새로운 공식<< 여기서 엥? 싶었다. )

나의코드

function solution(data, col, row_begin, row_end) {

    
    data.sort((a,b)=>{
        if(a[col-1]==b[col-1]){
            return b[0]-a[0];
        }
        else{
            return a[col-1]-b[col-1]
        }
    })
    
    let result=0;
    for(var i= row_begin-1; i<=row_end-1; i++){
    
         let go  = data[i].reduce((acc,El)=>{
           return  acc+(El%(i+1));
        },0)
        result ^=go
        
    }
    
   return result;
}
  • 나의 코드라고 하기엔 민망하게.. 잘 모르겟어서 남의 코드를 봤다.
    sort가 헷갈려서 if 문으로 return 1 과 return -1 으로 정렬했는데 너무 더러워서 다시 공부를 했다.
  • a-b 라는것은 a>b 순으로 정렬한다는 의미
  • b-a 는 b>a 순으로 정렬한다는 의미로 외워야되겠다.

다른 사람 풀이

function solution(data, col, row_begin, row_end) {
    return data
        .sort((a, b) => a[col - 1] === b[col - 1]
            ? b[0] - a[0]
            : a[col - 1] - b[col - 1]
        )
        .slice(row_begin - 1, row_end)
        .map((row, index) => row.reduce((acc, v) => acc + v % (index + row_begin), 0))
        .reduce((acc, si) => acc ^ si);
}

내코드와 비교

profile
안녕하세요

0개의 댓글