알고리즘/프로그래머스
[위클리 챌린지] 2주차
래울
2021. 8. 25. 19:56
https://programmers.co.kr/learn/courses/30/lessons/83201?language=python3
코딩테스트 연습 - 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
- Python 풀이
# 2차원 리스트 슬라이싱을 쓰려고, numpy사용
import numpy as np
def solution(scores):
scores = np.array(scores)
answer = ''
dic = {}
for i in range(len(scores)):
dic.setdefault(i, list(scores[:,i]))
for i in range(len(scores)):
if dic[i].count(dic[i][i])==1 and (min(dic[i])==scores[i][i] or max(dic[i])==scores[i][i]):
del dic[i][i]
for i in range(len(dic)):
temp = sum(dic[i])/len(dic[i])
if temp >= 90: answer += 'A'
elif temp >= 80: answer += 'B'
elif temp >= 70: answer += 'C'
elif temp >= 50: answer += 'D'
else: answer += 'F'
return answer