본문 바로가기

코딩테스트/Python

[프로그래머스] 위클리 챌린지 2주차 상호평가 작성중

.,,, 휴 위클린 챌린지 .. 오랜만에 본다? ㅎㅎ.. 저번에 1주차 하고 오랜만에 봤더니 4주차까지 나와있더라 ㅋ.. 2주차꺼를 풀어봤다..

내 코드

def solution(scores): answer = "" for i in range(len(scores)): a = [k[i] for k in scores] s = sum(a) l = len(a) if scores[i][i] == min(a) or scores[i][i] == max(a): if a.count(scores[i][i]) == 1: s-=scores[i][i] l-=1 if s/l >= 90: answer+="A" elif s/l >= 80: answer+="B" elif s/l >= 70: answer+="C" elif s/l >= 50: answer+="D" else: answer+="F" return answer

문제에 적힌 것 대로 풀어봤다.
a는 scores에서 남이 나를 평가한 점수만 모아둔 list이다. a의 sum과 길이를 구해 내가 나한테 준 점수가 최댓값이거나 최소값이고 중복된 값이 없으면 sum에서 내가 나를 평가한 점수를 빼고 길이도 1을 빼준다.
합과 길이를 구했으니 평균을 구하고 학점을 answer에 추가한다.


다른사람 코드

solution = lambda scores: "".join(map(lambda m: "FDDCBAA"[max(int(sum(m) / len(m) / 10) - 4, 0)], map(lambda m: (m[0], *m[1]) if min(m[1]) <= m[0] <= max(m[1]) else m[1], ((s[i], s[:i] + s[i+1:]) for i, s in enumerate(zip(*scores))))))

한줄 풀이긴한데.. 뭐지 이건.,,,,, 밥먹고 나중에 다시봐야지..

'코딩테스트 > Python' 카테고리의 다른 글

[프로그래머스] 카펫  (0) 2021.09.03
[프로그래머스] 모의고사  (0) 2021.09.03
[프로그래머스] H-Index 작성중  (0) 2021.08.19
[프로그래머스] 실패율  (0) 2021.08.11
[코드업] 파이썬 기초 100제 91~100  (0) 2021.08.06