Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Algorithm] 인사고과 #247

Open
hwangJi-dev opened this issue May 24, 2023 · 0 comments
Open

[Algorithm] 인사고과 #247

hwangJi-dev opened this issue May 24, 2023 · 0 comments
Assignees

Comments

@hwangJi-dev
Copy link
Owner

hwangJi-dev commented May 24, 2023

💬 문제

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


💬 Idea

  • 점수 배열 scores를 근무 태도 점수는 내림차순으로, 근무 태도 점수가 같다면 동료 평가 점수는 오름차순으로 정렬시킨다.
  • 완호의 점수가 다른 사원들의 두 점수와 비교하여 모두 낮은 경우가 있다면 바로 -1을 리턴하여 완호가 인센티브를 받을 수 없음을 리턴한다.
  • 근무 태도 점수내림차순으로 내려가므로 만일 임의의 사원의 동료 점수가 max값보다 작다면 두 점수 모두 낮다는 것을 의미하므로
    • 만일 임의의 사원의 동료 점수가 max값보다 작다면 두 점수 모두 낮으므로 rank를 올리지 않고, max값도 갱신하지 않는다
    • 만일 임의의 사원의 동료 점수가 max값보다 크거나 같다면
      • 임의의 사원의 점수 합과 완호의 점수 합을 비교해서 완호보다 더 높다면 상위에 위치한 것이므로 rank + 1을 해준다.
      • 동료 점수 max값을 갱신한다

💬 풀이

import Foundation

func solution(scores:[[Int]]) -> Int {
    let wanhoScore = scores[0]
    let sum = wanhoScore[0] + wanhoScore[1]
    let scoreArr = scores.sorted(by: { $0[0] > $1[0] || ($0[0] == $1[0] && $0[1] < $1[1]) })
    var rank = 1
    var colleagueScoreMax = 0
    
    for i in scoreArr {
        // 완호가 인센티브를 받지 못하는 경우
        if wanhoScore[0] < i[0] && wanhoScore[1] < i[1] {
            return -1
        }
        
        // 0번은 내림차순으로 내려가므로 1번 점수가(동료점수) 크거나 같을 경우에만 두 점수가 모두 낮지 않음을 의미함
        if colleagueScoreMax <= i[1] {
            // 완호의 점수보다 더 높다면 상위에 위치한 것이므로 rank + 1
            if sum < i[0] + i[1] {
                rank += 1
            }
            
            colleagueScoreMax = i[1]
        }
    }
    
    return rank
}
@hwangJi-dev hwangJi-dev self-assigned this Jun 6, 2023
hwangJi-dev added a commit that referenced this issue Jun 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant