백준 알고리즘 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번 : 두 수 비교하기
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (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)
  • 인기 글

  • 태그

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

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

티스토리툴바