Skip to content

Commit 72f605e

Browse files
committed
[level 3] Title: 인사고과, Time: 183.84 ms, Memory: 34.9 MB -BaekjoonHub
1 parent 9d65e49 commit 72f605e

File tree

2 files changed

+85
-0
lines changed

2 files changed

+85
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# [level 3] 인사고과 - 152995
2+
3+
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/152995)
4+
5+
### 성능 요약
6+
7+
메모리: 34.9 MB, 시간: 183.84 ms
8+
9+
### 구분
10+
11+
코딩테스트 연습 > 연습문제
12+
13+
### 채점결과
14+
15+
정확성: 100.0<br/>합계: 100.0 / 100.0
16+
17+
### 제출 일자
18+
19+
2025년 04월 01일 14:57:51
20+
21+
### 문제 설명
22+
23+
<p>완호네 회사는 연말마다 1년 간의 인사고과에 따라 인센티브를 지급합니다. 각 사원마다 근무 태도 점수와 동료 평가 점수가 기록되어 있는데 만약 어떤 사원이 다른 임의의 사원보다 두 점수가 모두 낮은 경우가 한 번이라도 있다면 그 사원은 인센티브를 받지 못합니다. 그렇지 않은 사원들에 대해서는 두 점수의 합이 높은 순으로 석차를 내어 석차에 따라 인센티브가 차등 지급됩니다. 이때, 두 점수의 합이 동일한 사원들은 동석차이며, 동석차의 수만큼 다음 석차는 건너 뜁니다. 예를 들어 점수의 합이 가장 큰 사원이 2명이라면 1등이 2명이고 2등 없이 다음 석차는 3등부터입니다.</p>
24+
25+
<p>각 사원의 근무 태도 점수와 동료 평가 점수 목록 <code>scores</code>이 주어졌을 때, 완호의 석차를 return 하도록 solution 함수를 완성해주세요.</p>
26+
27+
<hr>
28+
29+
<h5>제한 사항</h5>
30+
31+
<ul>
32+
<li>1 ≤ <code>scores</code>의 길이 ≤ 100,000</li>
33+
<li><code>scores</code>의 각 행은 한 사원의 근무 태도 점수와 동료 평가 점수를 나타내며 [a, b] 형태입니다.
34+
35+
<ul>
36+
<li><code>scores</code>[0]은 완호의 점수입니다.</li>
37+
<li>0 ≤ a, b ≤ 100,000</li>
38+
</ul></li>
39+
<li>완호가 인센티브를 받지 못하는 경우 -1을 return 합니다.</li>
40+
</ul>
41+
42+
<hr>
43+
44+
<h5>입출력 예</h5>
45+
<table class="table">
46+
<thead><tr>
47+
<th>scores</th>
48+
<th>result</th>
49+
</tr>
50+
</thead>
51+
<tbody><tr>
52+
<td>[[2,2],[1,4],[3,2],[3,2],[2,1]]</td>
53+
<td>4</td>
54+
</tr>
55+
</tbody>
56+
</table>
57+
<hr>
58+
59+
<h5>입출력 예 설명</h5>
60+
61+
<p>5 번째 사원은 3 번째 또는 4 번째 사원보다 근무 태도 점수와 동료 평가 점수가 모두 낮기 때문에 인센티브를 받을 수 없습니다. 2 번째 사원, 3 번째 사원, 4 번째 사원은 두 점수의 합이 5 점으로 최고점이므로 1 등입니다. 1 등이 세 명이므로 2 등과 3 등은 없고 1 번째 사원인 완호는 두 점수의 합이 4 점으로 4 등입니다.</p>
62+
63+
<hr>
64+
65+
<p>※ 공지 - 2024년 11월 4일 테스트케이스가 추가되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.</p>
66+
67+
68+
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
def solution(scores):
2+
ans = 1
3+
target_a, target_b = scores[0]
4+
target_score = target_a + target_b
5+
6+
scores.sort(key=lambda x: (-x[0], x[1]))
7+
maxb = 0
8+
9+
for a, b in scores:
10+
if target_a < a and target_b < b:
11+
return -1
12+
13+
if b >= maxb:
14+
maxb = b
15+
if a + b > target_score:
16+
ans += 1
17+
return ans

0 commit comments

Comments
 (0)