https://programmers.co.kr/learn/courses/30/lessons/83201
코딩테스트 연습 - 2주차
[[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD"
programmers.co.kr
○ 문제평가
난이도는 그렇게 어렵지 않은 편이나 문제가 길고 구현해야할게 은근히 많기 때문에 먼저 어떻게 구현할지 생각하고 접근한다면 쉽게 풀 수 있는 문제이다.
○ 나의 문제 풀이
def solution(scores): student_score = [] EachStudent_score = [] aver = [] grade = '' for i in range(len(scores)): for j in range(len(scores)): student_score.append(scores[j][i]) EachStudent_score.append(student_score) # 각 학생 점수 # print(EachStudent_score.count(max(EachStudent_score[i]))) # 유일한 최고점, 최저점 계산 if EachStudent_score[i][i] == max(EachStudent_score[i]): if EachStudent_score[i].count(max(EachStudent_score[i])) == 1: EachStudent_score[i].remove(EachStudent_score[i][i]) elif EachStudent_score[i][i] == min(EachStudent_score[i]): if EachStudent_score[i].count(min(EachStudent_score[i])) == 1: EachStudent_score[i].remove(EachStudent_score[i][i]) # student_score 초기화 student_score = [] for i in range(len(scores)): aver.append(sum(EachStudent_score[i])/len(EachStudent_score[i])) if aver[i] >= 90: grade += 'A' elif aver[i] >= 80: grade += 'B' elif aver[i] >= 70: grade += 'C' elif aver[i] >= 50: grade += 'D' elif aver[i] < 50: grade += 'F' return grade |
나는 각 학생별로 점수를 받고 그 중 최고점과 최저점을 계산해 조건에 맞는다면 list에서 제거시키는 방법을 이용했다.
728x90
'파이썬알고리즘' 카테고리의 다른 글
Programmers Summer/Winter Coding(~2018) 소수 만들기 (0) | 2021.08.25 |
---|---|
Programmers Weekly challenge - 4주차 (0) | 2021.08.25 |
20210816#(80) 백준 100문제 돌파! (부제 : 게시글 99개 달성) (0) | 2021.08.16 |
20210814#(80) 백준 1237번 정ㅋ벅ㅋ (난이도 상, 꿀잼) (0) | 2021.08.14 |
20210813#(79) 백준 1929번 소수 구하기 (0) | 2021.08.13 |