[알고리즘] 백준 2675 문자열 반복 - C

POBSIZ (POBSIZ)·2023년 4월 2일
0

알고리즘

목록 보기
6/11
post-custom-banner

문제 바로가기 >

설명 & 입출력

코드

#include <stdio.h>
#include <string.h>

int main() {
  // g = 학점, r = 결과, u = 최대 과목평점
  float g, r = 0, u = 0;
  
  // c = 과목명, s = 과목평점
  char c[51], s[3];

  // 20개의 과목에 맞춰 반복
  for (int i = 0; i < 20; i++) {
    
    // 과목명, 학점, 과목평점
    scanf("%s %f %s", c, &g, s);
    
    // 과목평점이 P 일 경우 계산 없이 무시
    if(strcmp(s, "P") == 0) continue;

	// 각 과목 평점에 맞추어 전공평점(학점 × 과목평점) 계산 후 결과값에 더함 
    if (strcmp(s, "A+") == 0) {
      r += g * 4.5;
    } else if (strcmp(s, "A0") == 0) {
      r += g * 4.0;
    } else if (strcmp(s, "B+") == 0) {
      r += g * 3.5;
    } else if (strcmp(s, "B0") == 0) {
      r += g * 3.0;
    } else if (strcmp(s, "C+") == 0) {
      r += g * 2.5;
    } else if (strcmp(s, "C0") == 0) {
      r += g * 2.0;
    } else if (strcmp(s, "D+") == 0) {
      r += g * 1.5;
    } else if (strcmp(s, "D0") == 0) {
      r += g * 1.0;
    }
	
    // 최대 과목평점 계산을 위해 P를 제외한 과목평점을 모두 더함
    u += g;
  }

  // 결과 / 최대 과목평점을 계산하여 평점을 출력
  printf("%f", r / u);

  return 0;
}

마무리

이 문제는 P와 NP를 어떻게 처리할지가 헷갈렸던 문제였었다.

post-custom-banner

0개의 댓글