반응형
학점계산
어떤 사람의 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
예제 입출력
입력 | 출력 |
A0 | 4.0 |
코드
1. 성적 입력받기
Scanner를 이용하여 String 형으로 성적을 입력받는다.
2. "F"일 경우 처리
학점이 "F"일 경우 switch문에서 오류가 발생하므로 바로 0.0을 반환하고 종료한다.
3. 아스키 코드를 이용해서 1의 자리 점수 구하기
성적의 앞부분은 A, B, C, D이다. 아스키코드로는 65, 66, 67, 68이므로 D의 점수를 1로 만드려면 69 - D를 하면 된다.charAt을 사용하여 0의 자리를 잘라내어 계산하였다.
4. switch문을 이용하여 소수점 계산하기
if문을 사용해도 상관없다. charAt() 메소드를 사용하여 1의 자리를 잘라내었다.
'+'일 경우 점수에 0.3을 더하고 '-'일 경우 0.3을 뺀다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String score = scanner.next();
if (score.equals("F")) {
System.out.println(0.0);
return;
}
double answer = 0.0;
answer += 69 - score.charAt(0);
switch (score.charAt(1)) {
case '+':
answer += 0.3;
break;
case '-':
answer -= 0.3;
}
System.out.println(answer);
}
}
아스키 코드를 이용하여 계산한다면 코드를 줄일 수 있는데 다른 사람들의 코드를 보고 조금 놀랐다 o.o
반응형
'코딩 테스트 > [JAVA] 백준' 카테고리의 다른 글
[JAVA] 백준 4388번 받아올림 | BOJ 자바 bronze 3 (0) | 2022.03.21 |
---|---|
[JAVA] 백준 2783번 삼각 김밥 | BOJ 자바 bronze 3 (0) | 2022.03.18 |
[JAVA] 백준 2547번 사탕 선생 고창영 | BOJ 자바 (0) | 2022.03.18 |
[JAVA] 별 찍기 | 백준 BOJ 2438 2439 2440 2441 2442 2443 2444 2445 2446 2522 2523 자바 (0) | 2022.03.16 |
[JAVA] 백준 1598번 꼬리를 무는 숫자 나열 | BOJ 자바 bronze 3 (0) | 2022.03.15 |
댓글