ํ์ด์ฌ์ ์ด์ฉํ ์ฑ์ ์ฒ๋ฆฌ ํ๋ก๊ทธ๋จ
<์ ์ ํ๊ท ์ ์ด์ฉํ ์์ฐจ ๊ตฌํ๊ธฐ- index ํ์ฉ>
์๊ณ ๋ฆฌ์ฆ ๋ฐฐ๊ฒฝ
3๋ช ์ ํ์๋ค์ ๊ฐ๊ฐ ์ค๊ฐ๊ณ ์ฌ์ ๊ธฐ๋ง๊ณ ์ฌ ์ ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ด ๋ ๊ฐ์ ์ ์๋ฅผ ๊ฐ์ง๊ณ ๊ฐ์ธ์ ์์ฐจ๋ฅผ ์์๋ณด๋ ค๊ณ ํ๋ค. ์์ฐจ๋ ๋ ๊ฐ์ง ์ํ ์ ์(์ค๊ฐ๊ณ ์ฌ, ๊ธฐ๋ง๊ณ ์ฌ)์ ํ๊ท ์ผ๋ก ๊ณ์ฐํ๋ค.
ํ์ ์กฐ๊ฑด
* ํ๋ฒ, ์ด๋ฆ, ์ค๊ฐ๊ณ ์ฌ ์ ์, ๊ธฐ๋ง๊ณ ์ฌ ์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ ์ฒ๋ฆฌํด์ผ ํ๋ค.
* Score ํด๋์คํ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
* ์์ฑ์ ๋งค๊ฐ๋ณ์๋ฅผ ํ์ฉํด์ผ ํ๋ค.
๊ตฌํ ํฌ์ธํธ
์ต๋ํ ์์ฐจ๋ฅผ ๊ฐ๋จํ๊ฒ ๊ตฌํ๊ธฐ ์ํด ์์ฒด ์ธ๋ฑ์ค ๊ฐ์ ์์ฐจ๋ก ํ์ฉํ ์์ ์ด๋ค.
ํต์ฌ์ ๋์ ๋๋ฆฌ๋ฅผ ํ์ฉํ์ฌ key์ value๋ก ์ด๋ฆ๊ณผ ์ ์๋ฅผ mapping ํด์ฃผ์ด index๋ฅผ ํ์ฉํ๋ ๊ฒ์ด๋ค. ์ด๋, ์๊ฐํด๋ด์ผ ํ ๋ฌธ์ ๋ก๋ ๋์ ๋๋ฆฌ๋ฅผ ๋ฆฌ์คํธํ ํ์ฌ์ผ index์ ์ ๊ทผํ ์ ์๋ค๋ ๊ฒ์ด ํฌ์ธํธ์ด๋ค.
ํ์ด์ฌ ๊ธฐ์ด์ ์ถฉ์คํ๊ฒ ์์ฑํ ์ฝ๋์ด๋ค. ์ถํ develop ํด์ผ ํ๋ ์ฝ๋์ด๋ ์ฐธ๊ณ ์ฉ์ผ๋ก ์ฌ์ฉํ์. ์๋ ์ฝ๋์์๋ ํ์ 3๋ช ์ ์ ์๊ฐ ๋ชจ๋ ์ ๋ ฅ๋์ด์ผ๋ง ์ฐ์ฐ์ผ๋ก ํ๋๋ก ํ์์ผ๋ฉฐ, ์ค๊ฐ์ ๋ฐ์ํ๋ ์ด์์ ๋ํด์๋ ๊ณ ๋ คํ์ง ์์๋ค.
๋ํ ์์ฐจ ๊ณ์ฐ ์ ์ค์ํ๊ฒ ๋ค๋ค์ง๋ ๋์์ฐจ์ ๊ด๋ จํด์๋ ์ด๋ฒ ์ฝ๋์์๋ ๊ณ ๋ ค๋์์ผ๋ก ์ ์ ํ์ง ์์๋ค. ๋จ์ํ ๊ธฐ๋ณธ ์์ฐจ ํ๋ฆ์ ๋ํ ์ดํด ์์ฃผ๋ก ์ฝ๋๋ฅผ ์์ฑํ์๋ค.
Class Score:
num = 0
name = ""
mid = 0
end = 0
avg = 0
reselut_dic = {}
def __init(self, no, name, mid, end):
self.no = no
self.name = name
self.mid = mid
self.end = end
def getName(self):
return self.name
def getAvg(self):
Score.avg = float(float(self.mid) + float(self.end)/2.0)
Score.reselt_dic[self.name] = Score.avg
def getRank(self):
tmp = list(Score.result_dic.items()) #๊ฐ์ฒด๋ฅผ ๋ฆฌ์คํธํ
tmp.sort(key=lambda x:x[1], reverse=True) #์๋ณธ๋ฆฌ์คํธ ์ ๋ ฌ
return tmp.index((self.getName(), self.getAvg()))+1 #์ธ๋ฑ์ค ์์์ด 0๋ถํฐ ์ด๋ฏ๋ก +1
st1, st2, st3 = None, None, None
##๋ฉ์ธ์ฝ๋ ๋ถ๋ถ##
for i in range(3):
num = input("ํ๋ฒ :")
name = input("์ด๋ฆ :")
mid = input("์ค๊ฐ๊ณ ์ฌ ์ ์ :")
end = input("๊ธฐ๋ง๊ณ ์ฌ ์ ์ :")
if i == 0:
st1 = Score(num, name, mid, end)
if i == 1:
st2 = Score(num, name, mid, end)
if i == 2:
st3 = Score(num, name, mid, end)
print("%s์ ํ๊ท ์ ์๋ %d์
๋๋ค" % (st1.getName(), st1.getAvg()))
print("%s์ ํ๊ท ์ ์๋ %d์
๋๋ค" % (st2.getName(), st2.getAvg()))
print("%s์ ํ๊ท ์ ์๋ %d์
๋๋ค" % (st3.getName(), st3.getAvg()))
print("=========================================================")
print("%s์ ์์ฐจ๋ %d๋ฑ ์
๋๋ค" % (st1.getName(), st1.getRank()))
print("%s์ ์์ฐจ๋ %d๋ฑ ์
๋๋ค" % (st2.getName(), st2.getRank()))
print("%s์ ์์ฐจ๋ %d๋ฑ ์
๋๋ค" % (st3.getName(), st3.getRank()))