728x90
반응형
문제 요약
- 알고리즘 분류: 구현, 조건문
- 난이도: Bronze5
- 문제내용:
- 성적을 입력하면 학점을 출력해라
- 사이트 주소: https://www.acmicpc.net/problem/2754
2754번: 학점계산
어떤 사람의 C언어 성적이 주어졌을 때, 평점은 몇 점인지 출력하는 프로그램을 작성하시오. 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
www.acmicpc.net
문제 풀이
이번 문제는 조건문 관련 문제이다. if ~else 구문도 있지만 switch문으로 구현하는게 더 좋아 보인다. 하지만 python은 swich문이 제공이 안되서 dictionary 구조로 정의해서 출력하면된다.
Code
Python
gradle = { '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(gradle[input()])
Java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String gradle = br.readLine();
float result = 0;
switch (gradle) {
case "A+":
result = (float) 4.3;
break;
case "A0":
result = (float) 4.0;
break;
case "A-":
result = (float) 3.7;
break;
case "B+":
result = (float) 3.3;
break;
case "B0":
result = (float) 3.0;
break;
case "B-":
result = (float) 2.7;
break;
case "C+":
result = (float) 2.3;
break;
case "C0":
result = (float) 2.0;
break;
case "C-":
result = (float) 1.7;
break;
case "D+":
result = (float) 1.3;
break;
case "D0":
result = (float) 1.0;
break;
case "D-":
result = (float) 0.7;
break;
case "F":
result = (float) 0.0;
break;
default:
break;
}
System.out.println(result);
}
}
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[BAEKJOON] 15650 N과 M (2) (0) | 2022.10.09 |
---|---|
[BAEKJOON] 15649 N과 M (1) (0) | 2022.10.06 |
[BAEKJOON] 2004 조합 0의 개수 (1) | 2022.10.05 |
[BAEKJOON] 1010 다리놓기 (0) | 2022.10.04 |
[BAEKJOON] 1629 곱셈 - Python (0) | 2022.10.03 |