Python/online judge
백준 [25206.너의 평점은] | Python
구름솜:D
2023. 11. 17. 18:04
728x90
✏️ 문제
https://www.acmicpc.net/problem/25206
25206번: 너의 평점은
인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치
www.acmicpc.net
✏️ 풀이방법
1. 하나의 리스트에 과목명, 학점, 등급을 담기
2. 학점*과목평점, 학점을 담을 리스트를 선언하여 등급이 P가 아닐 때만 값을 추가하기
3. 학점*과목평점과 학점을 담은 리스트를 활용하여 학점의 총합을 연산하기
📌 코드
grade = [['A+',4.5],['A0',4.0],['B+',3.5],['B0',3.0],['C+',2.5],['C0',2.0],['D+',1.5],['D0',1.0],['F',0.0]]
test = []
total = [] #학점*과목평점 값을 담을 리스트
score = [] #학점을 담을 리스트
for i in range(20):
test.append(list(input().split()))
test[i][1] = float(test[i][1]) #연산할 수 있도록 형변환
for i in range(20):
if test[i][2] == 'P':
continue
else:
for j in range(9):
if test[i][2] == grade[j][0]:
total.append(test[i][1]*grade[j][1])
score.append(test[i][1])
result = sum(total)/sum(score)
print(result)
📌 결과
ObjectOrientedProgramming1 3.0 A+
IntroductiontoComputerEngineering 3.0 A+
ObjectOrientedProgramming2 3.0 A0
CreativeComputerEngineeringDesign 3.0 A+
AssemblyLanguage 3.0 A+
InternetProgramming 3.0 B0
ApplicationProgramminginJava 3.0 A0
SystemProgramming 3.0 B0
OperatingSystem 3.0 B0
WirelessCommunicationsandNetworking 3.0 C+
LogicCircuits 3.0 B0
DataStructure 4.0 A+
MicroprocessorApplication 3.0 B+
EmbeddedSoftware 3.0 C0
ComputerSecurity 3.0 D+
Database 3.0 C+
Algorithm 3.0 B0
CapstoneDesigninCSE 3.0 B+
CompilerDesign 3.0 D0
ProblemSolving 4.0 P
3.2844827586206895
🔎 다른풀이
grade_list = ["A+", "A0", "B+", "B0", "C+", "C0", "D+", "D0", "F"]
score_list = [4.5, 4.0, 3.5, 3.0, 2.5, 2.0, 1.5, 1.0, 0.0]
tot_grade = 0 # 누적 단위수(sum 단위수)
tot_score = 0 # 누적 성적(sum 단위수x성적)
for i in range(20):
test = list(map(str, input().strip().split()))
hakjum = float(test[1])
if test[2] == "P":
continue
else:
idx = grade_list.index(test[2])
score = score_list[idx]
tot_score += (hakjum*score)
tot_grade += hakjum
avg_score = float(tot_score/tot_grade)
print(avg_score)
- 학점*과목평점과 학점을 리스트에 담지 않고 누적시키며 연산 할 수 있다.