반응형

문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/120882
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
✅ 문제 설명
어플에서 학생들의 영어와 수학 점수가 주어진 드림 score에서, 각 학생의 평균점수를 계산하고 그를 기준으로 등수를 매기는 문제입니다.
🔹 해결 방식
- 각 학생의 [영어, 수학] 점수를 보고, 평균 계산
- 평균점수를 높은 순서로 밀어 등수 매기
- 원래 순서에 따라 각 학생의 등수 복원
📈 예시
예시 1
score = [[80, 70], [90, 50], [40, 70], [50, 80]]
- 평균: [75, 70, 55, 65]
- 등수: 75(1등), 70(2등), 65(3등), 55(4등)
- 원래 순서로 등수: [1, 2, 4, 3]
예시 2
score = [[80, 70], [70, 80], [30, 50], [90, 100], [100, 90], [100, 100], [10, 30]]
- 평균: [75, 75, 40, 95, 95, 100, 20]
- 등수: 100(1등), 95(2등), 75(4등), 40(6등), 20(7등)
- 결과: [4, 4, 6, 2, 2, 1, 7]
💻 코드 구현
def solution(score):
# 각 학생의 평균 계산
avg = [(s[0] + s[1]) / 2 for s in score]
# 높은 순서로 정렬
sorted_avg = sorted(avg, reverse=True)
# 순서를 기준으로 등수 계산
ranks = [sorted_avg.index(a) + 1 for a in avg]
return ranks
✅ 테스트
print(solution([[80, 70], [90, 50], [40, 70], [50, 80]]))
# 결과: [1, 2, 4, 3]
print(solution([[80, 70], [70, 80], [30, 50], [90, 100], [100, 90], [100, 100], [10, 30]]))
# 결과: [4, 4, 6, 2, 2, 1, 7]
반응형
'IT > CodingTest' 카테고리의 다른 글
[programmers] 'OX퀴즈' 문제를 가장 간단하게 푸는 방법 (0) | 2025.03.27 |
---|---|
[programmers] '영어가 싫어요' 문제 해설 및 정답코드 (0) | 2025.03.25 |
[programmers] '삼각형의 완성조건(2)' 문제 해설 및 정답코드 (0) | 2025.03.25 |
[programmers] '공 던지기' 문제 해설 및 정답코드 (0) | 2025.03.20 |
[programmers] '2차원으로 만들기' 문제해설 (0) | 2025.03.18 |
[programmers] '주사위의 개수' 문제해설 (0) | 2025.03.17 |
[programmers] '외계행성의 나이' 문제 간단하게 풀기 (1) | 2025.02.27 |
[programmers] '가위 바위 보' 문제를 푸는 여러 가지 방법 (0) | 2025.02.25 |
댓글