🔍 문제
학급 학생 20명의 중간, 기말 점수 순위를 구하고, 두 시험의 편차를 출력하는 프로그램 생성
🖥 실행
1) 모듈
class RankDeviation:
def __init__(self, mss, ess):
self.midStuScos = mss
self.endStuScos = ess
self.midRanks = [0 for i in range(len(mss))]
self.endRanks = [0 for i in range(len(ess))]
self.rankDeviation = [0 for i in range(len(mss))]
def setRank(self, ss, rs):
for idx, sco1 in enumerate(ss):
for sco2 in ss:
if sco1 < sco2:
rs[idx] += 1
def setMidRank(self):
self.setRank(self.midStuScos, self.midRanks)
def getMidRank(self):
return self.midRanks
def setEndRank(self):
self.setRank(self.endStuScos, self.endRanks)
def getEndRank(self):
return self.endRanks
def printRankDeviation(self):
for idx, mRank in enumerate(self.midRanks):
deviation = mRank - self.endRanks[idx]
if deviation > 0:
deviation = '↑' + str(abs(deviation))
elif deviation <0:
deviation = '↓' + str(abs(deviation))
else:
deviation = '=' + str(abs(deviation))
print(f'mid_rank: {mRank} \t end_rank: {self.endRanks[idx]} \t Deviation: {deviation}')
2) 실행파일
import rankMod as rm
import random
midStuScos = random.sample(range(50, 101), 20)
endStuScos = random.sample(range(50, 101), 20)
rd = rm.RankDeviation(midStuScos, endStuScos)
rd.setMidRank()
rd.setEndRank()
rd.printRankDeviation()
📝 결과물
mid_rank: 17 end_rank: 5 Deviation: ↑12
mid_rank: 1 end_rank: 11 Deviation: ↓10
mid_rank: 13 end_rank: 7 Deviation: ↑6
mid_rank: 2 end_rank: 12 Deviation: ↓10
mid_rank: 9 end_rank: 18 Deviation: ↓9
mid_rank: 18 end_rank: 13 Deviation: ↑5
mid_rank: 11 end_rank: 1 Deviation: ↑10
mid_rank: 12 end_rank: 17 Deviation: ↓5
mid_rank: 4 end_rank: 16 Deviation: ↓12
mid_rank: 5 end_rank: 2 Deviation: ↑3
mid_rank: 8 end_rank: 14 Deviation: ↓6
mid_rank: 15 end_rank: 15 Deviation: =0
mid_rank: 14 end_rank: 19 Deviation: ↓5
mid_rank: 0 end_rank: 6 Deviation: ↓6
mid_rank: 10 end_rank: 4 Deviation: ↑6
mid_rank: 6 end_rank: 8 Deviation: ↓2
mid_rank: 16 end_rank: 0 Deviation: ↑16
mid_rank: 19 end_rank: 10 Deviation: ↑9
mid_rank: 7 end_rank: 9 Deviation: ↓2
mid_rank: 3 end_rank: 3 Deviation: =0
'Coding test > Python 기초문제' 카테고리의 다른 글
[정렬] 1부터 100사이 난수 정렬(삽입 정렬) (0) | 2022.05.12 |
---|---|
[정렬] 키순대로 배열 (0) | 2022.05.12 |
[딕셔너리] BMI 계산기 (0) | 2022.05.04 |
[리스트] 암호 해독기 (0) | 2022.05.03 |
[리스트] 최고, 최저점을 삭제 후 총점, 평균 구하기 (0) | 2022.05.03 |