728x90
반응형
최근 회사 인턴생활 + 알바 + 운동에 치이고 살았던 나는 4개월만에 백준 문제를 풀어보았다.
4개월동안 알고리즘 문제를 푼 적이 없어 실버 5단계 문제인데도 시간이 조금 걸렸다...ㅋㅋㅋ
<문제>
<문제 해석>
과목에 맞는 학점과 등급을 이용하여 전공 평점을 구하라.
전공 평점 = (학점 x 과목평점) / 학점의 총합
*단, 학점이 P인 경우에는 계산에 포함시키지 않는다.
<문제 해결>
1. BufferedReader 로 과목명, 학점, 등급을 입력받는다.
2. StringTokenizer 로 학점, 등급을 저장 후,
3. 등급에 맞는 과목평점을 찾아서
4. 전공 평점을 계산해주면 된다.
5. 단, "P" 학점을 받은 경우에는 계산되지 않도록 한다.
<코드>
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static double[] s_card = {4.5,4.0,3.5,3.0,2.5,2.0,1.5,1.0,0.0};
static String[] r_card = {"A+","A0","B+","B0","C+","C0","D+","D0","F"};
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
double total=0;
double s_total=0;
double pass = 0;
for(int y=0;y<20;y++) {
double o_score = 0, mul = 0;
StringTokenizer st = new StringTokenizer(br.readLine());
st.nextToken();
double score = Double.parseDouble(st.nextToken());
String rank = st.nextToken();
for(int i=0;i<s_card.length;i++) {
if(rank.equals(r_card[i])) {
o_score = s_card[i];
mul = score * o_score;
total+=mul;
s_total += score;
pass = total/s_total;
}
if(rank.equals("P")) {
continue;
}
}
}
System.out.printf("%.6f\n",pass);
}
}
다음에는 더 보기 좋은 코드로 작성해볼 것이다.
문제를 풀면서 한가지 깨달았던 것은 코딩은 꾸준히 해야한다는 것이다 !!!
앞으로도 시간이 날 때마다 꾸준히 문제를 풀어야겠다..ㅋㅋㅋㅋ
https://www.acmicpc.net/problem/25206
25206번: 너의 평점은
인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치
www.acmicpc.net
반응형
'백준' 카테고리의 다른 글
[백준] 9461번 : 파도반 수열 (JAVA) (2) | 2023.01.27 |
---|---|
[백준] 1904번 : 01타일 (JAVA) (0) | 2023.01.18 |
[백준] 9184번 : 신나는 함수 실행 (JAVA) (0) | 2023.01.12 |
[백준] 1874번 : 스택 수열 (JAVA) (0) | 2023.01.09 |
[백준] 4949번 : 균형잡힌 세상 (JAVA) (0) | 2023.01.09 |