티스토리 뷰
1. 문제 내용
2. 접근 방식
- 각 총점을 구한 후, k번째 학생의 총점을 저장한다.
- 그 총점을 내림차순 정렬한 후, k번째 학생의 점수 순위를 저장한다.
- 각 평점에 속할 수 있는 순위의 경계값을 구한 후, k번째 학생이 몇 번째 경계값에 속하는지 구한다.
- k번째 학생이 속한 경계값이 곧 k번째 학생의 평점이다.
뭔가 더 깔끔하고 명확한 코드를 작성할 수 있을 듯한데, 아쉽다. 나중에 다시 보면 번뜩 또 다른 아이디어가 떠오르길 기대한다.
3. 정답 코드
def make_list_with_total(n) :
data = []
for i in range(1, n + 1) :
mid, final, hw = map(int, input().split())
data.append(mid * 0.35 + final * 0.45 + hw * 0.2)
return data
T = int(input())
for test_case in range(1, T + 1):
n, k = map(int, input().split())
data = make_list_with_total(n)
sorted_data = sorted(data, reverse=True)
score_of_k = data[k-1]
rank = sorted_data.index(score_of_k) + 1
grades = [ 'A+', 'A0', 'A-', 'B+', 'B0', 'B-', 'C+', 'C0', 'C-', 'D0' ]
amount = n // 10
boundaries = [ amount * i for i in range(1, 11) ]
for index, boundary in enumerate(boundaries) :
if rank <= boundary :
print(f'#{test_case} {grades[index]}')
break
728x90
'코딩 테스트 > SW Expert Academy' 카테고리의 다른 글
[SW Expert Academy] 1926. 간단한 369게임 파이썬 정답 코드 (2) | 2023.05.04 |
---|---|
[SW Expert Academy] 1288. 새로운 불면증 치료법 파이썬 정답 코드 (0) | 2023.05.04 |
[SW Expert Academy] 1946. 간단한 압축 풀기 파이썬 정답 코드 (0) | 2023.05.04 |
[SW Expert Academy] 1984. 중간 평균값 구하기 파이썬 정답 코드 (0) | 2023.05.04 |
[SW Expert Academy] 1928. Base64 Decoder 파이썬 정답 코드 (0) | 2023.05.04 |