Search

이차배열5_문제10_랭킹

대분류
STEP08 이차리스트
소분류
이차리스트5_문제

영상

문제

''' [문제] 위 데이터는 학생 4명의 데이터이다. 순서대로 [번호], [국어], [수학], [영어], [등수]의 데이터이다. 이제 등수를 넣어야한다. 각 과목별 등수별로 점수를 매기고 각 점수들의 합이 가장적은 학생이 1등이다. 총합이 같으면 같은 등수이다. 1번학생은 국어 4등, 수학3등, 영어2등으로 점수는 9점이다. 2번학생은 국어 3등, 수학1등, 영어3등으로 점수는 7점이다. 3번학생은 국어 2등, 수학4등, 영어1등으로 점수는 7점이다. 4번학생은 국어 1등, 수학2등, 영어4등으로 점수는 7점이다. 1등은 3명, 4등은 1명이다. [정답] [1001, 20, 43, 54, 4], [1002, 21, 73, 44, 1], [1003, 65, 13, 55, 1], [1004, 76, 63, 4, 1] ''' score = [ [1001, 20, 43, 54, 0], [1002, 21, 73, 44, 0], [1003, 65, 13, 55, 0], [1004, 76, 63, 4, 0] ]
Python
복사

해설

''' [문제] 위 데이터는 학생 4명의 데이터이다. 순서대로 [번호], [국어], [수학], [영어], [등수]의 데이터이다. 이제 등수를 넣어야한다. 각 과목별 등수별로 점수를 매기고 각 점수들의 합이 가장적은 학생이 1등이다. 총합이 같으면 같은 등수이다. 1번학생은 국어 4등, 수학3등, 영어2등으로 점수는 9점이다. 2번학생은 국어 3등, 수학1등, 영어3등으로 점수는 7점이다. 3번학생은 국어 2등, 수학4등, 영어1등으로 점수는 7점이다. 4번학생은 국어 1등, 수학2등, 영어4등으로 점수는 7점이다. 1등은 3명, 4등은 1명이다. [정답] [1001, 20, 43, 54, 4], [1002, 21, 73, 44, 1], [1003, 65, 13, 55, 1], [1004, 76, 63, 4, 1] ''' score = [ [1001, 20, 43, 54, 0], [1002, 21, 73, 44, 0], [1003, 65, 13, 55, 0], [1004, 76, 63, 4, 0] ] rankList = [] i = 1 while i <= 3: rank = [] j = 0 while j <= 3: count = 0 k = 0 while k <= 3: if score[j][i] <= score[k][i]: print(score[j][i], score[k][i]) count += 1 k += 1 rank.append(count) j += 1 rankList.append(rank) i += 1 print(rankList) total = [] for i in range(4): tot = 0 for j in range(3): tot += rankList[j][i] total.append(tot) print(total) rank = [] for i in range(len(total)): count = 1 for j in range(len(total)): if total[i] > total[j]: count += 1 rank.append(count) print(rank) for i in range(len(score)): score[i][4] = rank[i] for i in range(len(score)): print(score[i])
Python
복사