백준 알고리즘 25206번 : 너의 평점은

2023. 9. 26. 13:54·BaekJoon
반응형

 

풀이

A~F 학점까지만 계산하기 위해 입력받은 글자중에 해당하는 부분이 있는지 확인하기 위해 string 배열을 만들어준다.

이제와서 생각해보니 P만 검사해서 제외하는게 더 좋았을걸...

static string[] grades = { "A+", "A0", "B+", "B0", "C+", "C0", "D+", "D0", "F" };

 

20줄에 걸쳐 과목명, 학점, 등급이 공백으로 구분되어 주어져 20줄에 해당하는 글자를 입력받기 위해 배열을 생성하고 

20번 동안 입력을 받는다. 

public static void Main()
	{
		string[] input = new string[20];
		int i = 0;
		do
		{
			input[i] = Console.ReadLine();
			i++;
		}
		while (i < 20);

		Console.WriteLine(GetAverage(input));
	}

 

입력으로 받은 string 배열을 통해 전공평점을 계산하는 함수 

순회를 돌며 공백을 기준으로 나누고 계산해야 할 등급이 포함되어 있는지 체크하고 전공과목의 합(학점 x 과목평점)과 학점의 합을 계산한 후 전공평점을 반환한다 

word[1] 부분은 맘에 들지 않는다

	public static float GetAverage(string[] txt)
	{
		foreach (string line in txt)
		{
			string[] word = line.Split(' ');
			if(grades.Contains(word.Last()))
			{
				float subjectGrade = GetScore(word.Last());
				float score = float.Parse(word[1]);
				totalSum += subjectGrade * score;
				sum += score;
			}
		}

		return totalSum/ sum;

	}

 

주어진 글자의 과목평점을 반환하는 함수

public static float GetScore(string grade)
	{
		var score = 0f;
		switch (grade)
		{
			case "A+": score = 4.5f; break;
			case "A0": score = 4.0f; break;
			case "B+": score = 3.5f; break;
			case "B0": score = 3.0f; break;
			case "C+": score = 2.5f; break;
			case "C0": score = 2.0f; break;
			case "D+": score = 1.5f; break;
			case "D0": score = 1.0f; break;
			case "F": score = 0f; break;
		}
		return score;
	}

 

전체코드

더보기
namespace BaekJoon;

public class YourGrade
{
	static string[] grades = { "A+", "A0", "B+", "B0", "C+", "C0", "D+", "D0", "F" };

	static float sum, totalSum;

	public static void Main()
	{
		string[] input = new string[20];
		int i = 0;
		do
		{
			input[i] = Console.ReadLine();
			i++;
		}
		while (i < 20);

		Console.WriteLine(GetAverage(input));
	}

	public static float GetAverage(string[] txt)
	{
		foreach (string line in txt)
		{
			string[] word = line.Split(' ');
			if(grades.Contains(word.Last()))
			{
				float subjectGrade = GetScore(word.Last());
				float score = float.Parse(word[1]);
				totalSum += subjectGrade * score;
				sum += score;
			}
		}

		return totalSum/ sum;

	}

	public static float GetScore(string grade)
	{
		var score = 0f;
		switch (grade)
		{
			case "A+": score = 4.5f; break;
			case "A0": score = 4.0f; break;
			case "B+": score = 3.5f; break;
			case "B0": score = 3.0f; break;
			case "C+": score = 2.5f; break;
			case "C0": score = 2.0f; break;
			case "D+": score = 1.5f; break;
			case "D0": score = 1.0f; break;
			case "F": score = 0f; break;
		}
		return score;
	}
}
저작자표시 비영리 변경금지 (새창열림)

'BaekJoon' 카테고리의 다른 글

JavaFestival23번 문제 C#으로 풀어보기  (0) 2024.04.24
백준 알고리즘 10875 : 뱀 (시간초과)  (2) 2023.10.13
백준 알고리즘 2754 : 학점계산  (0) 2023.09.26
백준 알고리즘 1264번 : 모음의 개수  (0) 2023.09.15
백준 알고리즘 1330번 : 두 수 비교하기  (0) 2023.09.11
'BaekJoon' 카테고리의 다른 글
  • 백준 알고리즘 10875 : 뱀 (시간초과)
  • 백준 알고리즘 2754 : 학점계산
  • 백준 알고리즘 1264번 : 모음의 개수
  • 백준 알고리즘 1330번 : 두 수 비교하기
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (727)
      • 스마트팜 (1)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (18)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    카페24리뷰이관
    codingtips
    ipcamera
    cv2
    리스트
    programmerlife
    Python
    셀레니움
    라떼우유
    appdevelopment
    list
    스크립트 실행
    쇼핑몰리뷰
    리뷰관리
    상품 리뷰 크롤링
    devlife
    programming101
    codingcommunity
    파이썬
    스크립트 실행 순서
    C#
    리뷰이관
    rtsp
    믈레코비타멸균우유
    유니티
    learntocode
    카페24리뷰
    스마트스토어리뷰
    unity
    긴유통기한우유
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
백준 알고리즘 25206번 : 너의 평점은
상단으로

티스토리툴바