[Baekjoon] 25206-πŸ€™λ„ˆμ˜ 평점은

ChobbyΒ·2023λ…„ 9μ›” 18일
1

Baekjoon

λͺ©λ‘ 보기
20/108

πŸ˜€λ¬Έμ œ

μΈν•˜λŒ€ν•™κ΅ 컴퓨터곡학과λ₯Ό μ‘Έμ—…ν•˜κΈ° μœ„ν•΄μ„œλŠ”, 전곡평점이 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인 κ³Όλͺ©μ€ κ³„μ‚°μ—μ„œ μ œμ™Έν•΄μ•Ό ν•œλ‹€.

κ³Όμ—° μΉ˜ν›ˆμ΄λŠ” λ¬΄μ‚¬νžˆ μ‘Έμ—…ν•  수 μžˆμ„κΉŒ?


πŸ˜μž…λ ₯

20쀄에 걸쳐 μΉ˜ν›ˆμ΄κ°€ μˆ˜κ°•ν•œ 전곡과λͺ©μ˜ κ³Όλͺ©λͺ…, 학점, 등급이 곡백으둜 κ΅¬λΆ„λ˜μ–΄ 주어진닀.


πŸ˜‚μΆœλ ₯

μΉ˜ν›ˆμ΄μ˜ 전곡평점을 좜λ ₯ν•œλ‹€.

μ •λ‹΅κ³Όμ˜ μ ˆλŒ€μ˜€μ°¨ λ˜λŠ” μƒλŒ€μ˜€μ°¨κ°€
(10^{-4}) μ΄ν•˜μ΄λ©΄ μ •λ‹΅μœΌλ‘œ μΈμ •ν•œλ‹€.


πŸ€£μ œν•œ

1 ≀ κ³Όλͺ©λͺ…μ˜ 길이 ≀ 50
κ³Όλͺ©λͺ…은 μ•ŒνŒŒλ²³ λŒ€μ†Œλ¬Έμž λ˜λŠ” 숫자둜만 이루어져 있으며, 띄어쓰기 없이 주어진닀. μž…λ ₯으둜 μ£Όμ–΄μ§€λŠ” λͺ¨λ“  κ³Όλͺ©λͺ…은 μ„œλ‘œ λ‹€λ₯΄λ‹€.
학점은 1.0,2.0,3.0,4.0쀑 ν•˜λ‚˜μ΄λ‹€.
등급은 A+,A0,B+,B0,C+,C0,D+,D0,F,P쀑 ν•˜λ‚˜μ΄λ‹€.
적어도 ν•œ κ³Όλͺ©μ€ 등급이 Pκ°€ μ•„λ‹˜μ΄ 보μž₯λœλ‹€.


πŸ˜ƒμ˜ˆμ œ

예제 μž…λ ₯ 1

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

예제 좜λ ₯ 1

  • 3.284483

예제 μž…λ ₯ 2

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

예제 좜λ ₯ 2

  • 0.000000

πŸ˜„λ…ΈνŠΈ

예제 1은 μΉ˜ν›ˆμ΄μ˜ μ‹€μ œ 전곡과λͺ© 성적이닀.


πŸ˜…μΆœμ²˜

  • University > μΈν•˜λŒ€ν•™κ΅ > 2022 μΈν•˜λŒ€ν•™κ΅ ν”„λ‘œκ·Έλž˜λ° κ²½μ§„λŒ€νšŒ(IUPC) B번
  • 문제λ₯Ό κ²€μˆ˜ν•œ μ‚¬λžŒ: 39dll, gumgood, jh05013, jhnah917, ruz, yooshnn, yuja
  • 문제λ₯Ό λ§Œλ“  μ‚¬λžŒ: wjdclgns12

πŸ˜†μ•Œκ³ λ¦¬μ¦˜ λΆ„λ₯˜

  • μˆ˜ν•™
  • κ΅¬ν˜„
  • λ¬Έμžμ—΄

πŸ˜Žλ‚˜μ˜ 풀이

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split("\n")
let scoreSum = 0
let getScores = 0

const subScore = {
    "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,
}

input.forEach(line => {
    const [subName, score, subClass] = line.split(" ")
    // P 학점은 μ±„μ ν•˜μ§€ μ•ŠμŒ
    if(subClass !== 'P') {
        const subClassScore = subScore[subClass]
    
        // 학점 λˆ„μ 
        scoreSum += Number(score)
    
        // 학점 * κ³Όλͺ©ν‰μ 
        getScores += Number(score) * subClassScore    
    }
})

console.log(getScores / scoreSum)
profile
λ‚΄ 지식을 κ³΅μœ ν•  수 μžˆλŠ” λŒ€λ‹΄ν•¨

0개의 λŒ“κΈ€