FrontEnd/프로그래머스

[JS] 인사고과

728x90

원호의 등수를 알고 싶다면 원호보다 인사고과를 잘 받은 사람들의 수를 세면 된다.

 

우선 두수의 합이 원호보다 큰 사람들을 가려낸 후, 그 사람들 사이에서 인사고과를 받을 수 없는 사람들을 제외하면 된다.

 

이게 가능한 이유는 자신보다 합이 적은 사람에 의해서는 인사고과를 받을 수 없기 때문이다.

 

a + b > c+ d 라면

a>c && b>d 일수 없기 때문

 

 

 

 

function solution(scores) {
   
    const ary = []
    const [wanhoA,wanhoB] = scores[0]
    
    for (let i=0; i < scores.length ; i++){
        const [a,b] = scores[i]
        if (a+b > wanhoA+wanhoB) ary.push([a,b])
        if (a> wanhoA && b > wanhoB) return -1
    }
    
    let ret = 1
    outer : for (let i = 0 ; i < ary.length ; i++){
        const [a,b] = ary[i]
        for (let j = 0 ; j < ary.length ; j++){
            const [tA,tB] = ary[j]
            if (tA>a && tB > b) continue outer
        }
        ret+=1
    }
    
    return ret
}
728x90

'FrontEnd > 프로그래머스' 카테고리의 다른 글

[JS] 표 병합  (1) 2023.10.16
[JS] 표현 가능한 이진트리  (0) 2023.10.14
[JS] 연속 펄스 부분 수열의 합  (0) 2023.10.10
[JS] 아방가르드 타일링  (0) 2023.10.09
[JS] 상담원 인원  (0) 2023.10.07