ALGORITHM/PYTHON

백준 BAEKJOON 29614번 학점계산프로그램 [PYTHON/파이썬]

칼코
반응형

 

 

 

 

 

백준 BAEKJOON 29614번 학점계산프로그램 [PYTHON/파이썬]


<문제 출처> (BRONZE Ⅱ)

https://www.acmicpc.net/problem/29614

 

29614번: 학점계산프로그램

첫째 줄에 과목별 등급이 나열된 문자열 $S$가 주어진다. 등급 사이에는 별도의 구분자가 없다. 문자열은 표에 있는 문자들로만 이루어져 있으며, 최대 $1\,000$ 글자로 이루어져 있다.

www.acmicpc.net

 

 

 

 

 

 

<풀이>

 

필자의 경우 입력값 맨 마지막에 무의미한 특수기호를 붙여서 풀었다.

for문을 순회하여 학점이 담긴 리스트를 만든 후

그 리스트를 또 순회하여 학점의 평균을 도출했다.

 

 

 

 

 

<코드>

grade_dict = {
    "A+": 4.5,
    "A": 4.0,
    "B+": 3.5,
    "B": 3.0,
    "C+": 2.5,
    "C": 2.0,
    "D+": 1.5,
    "D": 1.0,
    "F": 0.0,
}

grade = input() + "@"  # for 순회를 위해 무의미한 @ 추가

subject = []
for i in range(len(grade) - 1):
    if grade[i] == "+":
        continue

    if grade[i + 1] == "+":
        subject.append(grade[i] + "+")
    else:
        subject.append(grade[i])

total = 0
for s in subject:
    total += grade_dict[s]

print(total / len(subject))

 

 

 

 

 

 

 

반응형