티스토리 뷰
위클리 챌린지 2주차
def solution(scores):
answer = ''
for j in range(len(scores)):
cnt = len(scores)
add = 0
high = 0
low = 101
for i in range(len(scores)):
add += scores[i][j]
if i == j:
continue
if high < scores[i][j]:
high = scores[i][j]
elif low > scores[i][j]:
low = scores[i][j]
if scores[j][j] > high or scores[j][j] < low:
add -= scores[j][j]
cnt -= 1
grade = add / cnt
if grade >= 90:
answer += 'A'
elif 80 <= grade < 90:
answer += 'B'
elif 70 <= grade < 80:
answer += 'C'
elif 50 <= grade < 70:
answer += 'D'
else:
answer += 'F'
return answer
처음에 문제를 잘못 읽었다!ㅋㅋ
일단 cnt(카운트)를 모든 학생 수로 잡았다.
이중 포문으로 돌면서 각 열에 대한 점수들을 덧셈을 해준다.
이 때, 최대값, 최소값을 저장해준다. 만약 i == j이면 자기 자신이 평가한 점수이므로 continue로 최소값 최대값 구하는 곳에서는 패스한다.
각 행들을 열에 대해서 다 돌았으면 i == j인 것이(자기 자신이 평가한 것) score[j][j]가 되므로 이게 최대값 보다 크거나 최소값보다 작다면 평균을 구하는 곳에서는 제외해줘야한다. 따라서 add에서 score[j][j]를 빼준다. 물론 cnt(카운트)에서도 하나 빼준다.
그리고 grade라는 변수를 만들어 add/cnt를 해서 평균을 구해 각 구간에 맞는 점수를 answer에 저장해준다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 카펫 - 파이썬 (3) | 2021.09.08 |
---|---|
[프로그래머스] 거리두기 확인하기 - 파이썬 (0) | 2021.08.24 |
[프로그래머스] 프린터 - 파이썬 (0) | 2021.08.10 |
[프로그래머스] 오픈채팅방 - 파이썬 (0) | 2021.08.07 |
[프로그래머스] 부족한 금액 계산하기 - 파이썬 (0) | 2021.08.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 싸피
- git
- 파이썬
- 백준
- SQL
- SSAFY
- 안드로이드스튜디오
- 독학
- DOM
- django
- commit되돌리기
- javascript
- 비동기패턴
- SWEA
- Pyhton
- Python
- N과M
- AWS
- 세션 스토리지
- Java
- 프로그래머스
- vue
- 위클리챌린지2주차
- vue.js
- 자바
- SSAFY퇴소
- 배포
- 알고리즘
- splide
- 트리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함