반응형
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PwGK6AcIDFAUq
# 1983. 조교의 성적 매기기
grade = ['A+', 'A0', 'A-', 'B+', 'B0', 'B-', 'C+', 'C0', 'C-', 'D0']
T = int(input())
for tc in range(1, T+1):
N, K = map(int,input().split())
score_list = []
sort_list = []
for i in range(N):
m_test, f_test, hw = map(int, input().split())
score = (0.35*m_test + 0.45*f_test + 0.2*hw)
score_list.append(score)
sort_list.append(score)
# score_list 정렬
for i in range(N):
for j in range(i,N):
if sort_list[i] < sort_list[j]:
sort_list[i],sort_list[j] = sort_list[j], sort_list[i]
for i in range(N):
if sort_list[i] == score_list[K-1]:
grade_idx = i//(N//10)
print('#{} {}'.format(tc, grade[grade_idx]))
알고리즘을 처음 접할 무렵 어떻게 해서도 풀 수 없었던 문제를 지금 풀게 되어 너무 기쁘다
이 문제도 풀면서 문제가 많았는데
나는 score_list와 sort_list로 받아온 점수와 그것을 정렬한 점수 리스트를 나누어서 K가 몇등인지 알아내려고 했다
어차피 sort_list를 받기 위해서는 score_list를 받아오고 그걸 정렬해야해서
sort_list = score_list
이렇게 처음 sort_list를 받아온 후 정렬을 했는데 이런식으로 정렬을 진행하면 sort_list를 정렬 한 후
score_list도 sort_list와 같이 정렬이 되어버린다는 문제가 생긴다
리스트 호출에 대한 개념이 부족해서 생긴 실수다. 이론 공부를 해야겠다
반응형
'study > swea' 카테고리의 다른 글
[swea] 1859. 백만 장자 프로젝트 : python (0) | 2021.09.22 |
---|---|
[swea] 1984. 중간 평균값 구하기 : python (0) | 2021.09.21 |
[swea] 1204. [s/w 문제해결 기본] 1일차 - 최빈수 구하기 : python (0) | 2021.09.21 |
[swea] 1284. 수도 요금 경쟁 : python (0) | 2021.09.21 |
[swea] 1986. 지그재그 숫자 : python (0) | 2021.09.20 |