
- 티어 : Sliver 5
- 정답여부 :
정답- 알고리즘 유형 :
구현,문자열- 시간 제한 :
1초
인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다!
치훈이의 전공평점을 계산해주는 프로그램을 작성해보자.
전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다.
인하대학교 컴퓨터공학과의 등급에 따른 과목평점은 다음 표와 같다.
| 과목평점 등급 | 과목평점 |
|---|---|
| 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 |
P/F 과목의 경우 등급이 P또는 F로 표시되는데, 등급이 P인 과목은 계산에서 제외해야 한다.
과연 치훈이는 무사히 졸업할 수 있을까?
P/F 과목의 경우 등급이 P또는 F로 표시되는데, 등급이 P인 과목은 계산에서 제외해야 한다.
과연 치훈이는 무사히 졸업할 수 있을까?
치훈이의 전공평점을 출력한다.
정답과의 절대오차 또는 상대오차가 (10^{-4}) 이하이면 정답으로 인정한다.
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.284483
BruteForce 3.0 F Greedy 1.0 F DivideandConquer 2.0 F DynamicProgramming 3.0 F DepthFirstSearch 4.0 F BreadthFirstSearch 3.0 F ShortestPath 4.0 F DisjointSet 2.0 F MinimumSpanningTree 2.0 F TopologicalSorting 1.0 F LeastCommonAncestor 2.0 F SegmentTree 4.0 F EulerTourTechnique 3.0 F StronglyConnectedComponent 2.0 F BipartiteMatching 2.0 F MaximumFlowProblem 3.0 F SuffixArray 1.0 F HeavyLightDecomposition 4.0 F CentroidDecomposition 3.0 F SplayTree 1.0 F
0.000000
치훈이의 전공 평점을 계산해주면 되는 문제
pythongrades = {"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} # 딕서녀리로 값을 저장해줌 키와 값!! sum_exam_score = 0 # 학점의 총 합 score_grades_sum = 0 # 학점과 과목평점의 곱의 합 for i in range(20): exam_subject, exam_score, exam_grades= input().split() if exam_grades != "P": sum_exam_score += float(exam_score) score_grades_sum += float(exam_score) * grades[exam_grades] print(score_grades_sum / sum_exam_score)
다른 사람들은 인덱스를 이용하여 아름답게 푼 사람들을 봄 ..ㅎㅎ
pythonimport sys score = ['A+' , 'A0' ,'B+' , 'B0' , 'C+','C0','D+','D0','F'] pyeong = [4.5 , 4.0 , 3.5 , 3.0 , 2.5 , 2.0 , 1.5 , 1.0 , 0.0] isu_hak = 0 hak = 0 for i in range(20): A= list(sys.stdin.readline().split()) if A[2]!='P': hak+= pyeong[score.index(A[2])] * float(A[1]) isu_hak += float(A[1]) print(hak/ (isu_hak))
다음엔 인덱스로 해보자!!