honey_pot
[python] 백준 2754번 본문
c = input()
pre = c[0]
post = c[1:]
if pre == 'A':
if post == '+':
print(4.3)
elif post == '0':
print(4.0)
else: print(3.7)
if pre == 'B':
if post == '+':
print(3.3)
elif post == '0':
print(3.0)
else: print(2.7)
if pre == 'C':
if post == '+':
print(2.3)
elif post == '0':
print(2.0)
else: print(1.7)
if pre == 'D':
if post == '+':
print(1.3)
elif post == '0':
print(1.0)
else: print(0.7)
if pre == 'F':
print(0.0)
첫번째로 작성한 코드는 반복작업으로 다 비교하는 코드이다.
작성하면서 앞 문자가 차례대로 4,3,2,1,0 이고뒤 문자별로 -0.3 씩 줄어드는 규칙이 있는 건 알았는데 일단 끝까지 작성했다.
c = input()
grade = {
'A+': 4.3,
'A0': 4.0,
'A-': 3.7,
'B+': 3.3,
'B0': 3.0,
'B-': 2.7,
'C+': 2.3,
'C0': 2.0,
'C-': 1.7,
'D+': 1.3,
'D0': 1.0,
'D-': 0.7,
'F': 0.0,
}
print(grade[c])
dict 형식으로 작성해서 value 값을 꺼내는 식으로도 가능하다.
숏코딩으로 어떻게 구현하는지 궁금했는데
a=input()+' ';print('FDCBA'.index(a[0])+[0.3,0.0,-0.3,0.0]['+0- '.index(a[1])])
1. 입력을 받고 a[0] : A, a[1] : +0- (F의 경우 : 빈칸) 가 된다.
2. 'FDCBA'.index(a[0]) : 'FDCBA' 문자열의 인덱스가 각각 0,1,2,3,4 즉 학점의 일의 자리가 된다.
3. + [0.3, 0.0, -0.3, 0.0]['+0- '.index(a[1])] :
[0.3, 0.0, -0.3, 0.0] 리스트의 인덱스는
'+0- '.index(a[1]) : '+0- ' 의 문자열 중 a[1]에 해당하는 값의 인덱스이다.
숏코딩 코드 출처 : 백준 noye
'문제 풀이' 카테고리의 다른 글
[python] 백준 4101번 (0) | 2021.06.06 |
---|---|
[python] 백준 2480번 (0) | 2021.06.06 |
[python] 백준 10156번 (0) | 2021.06.03 |
[python] 백준 11557번 (0) | 2021.06.03 |
[python] 백준 10039번 (0) | 2021.06.03 |
Comments