[백준 BOJ] 17826번 나의 학점은? (C++/cpp)

2022. 9. 27. 15:06PS (Program Solving)/BOJ (백준)

문제 설명

https://www.acmicpc.net/problem/17826

 

17826번: 나의 학점은?

3학년인 홍익이는 이번 학기 전공필수 과목인 운영체제(OS) 수업을 들었다. 수업을 마치고, 얼마 후 교수님께서 클래스넷을 통해 전 학생의 중간고사, 기말고사, 과제점 점수를 만점 기준 300점으

www.acmicpc.net

백준 BOJ 17826번 나의 학점은? 문제 사진1
백준 BOJ 17826번 나의 학점은? 문제 사진2

 

접근 방법 - 배열을 통한 기본적인 연산 문제

백준의 17826번 문제는 배열을 이용하여 해결해야 하는 기본적인 연산 문제이다.

해당 문제는, 홍익이의 점수와 모든 수강생들의 점수를 입력받아 홍익이의 학점을 출력해야 하는 문제이다.

이 문제와 같은 경우에는, 배열을 자유롭게 활용할 줄 안다면 쉽게 풀 수 있는 문제일 것으로 예상된다.

필자와 같은 경우에는 모든 입력값을 받은 뒤, 홍익이의 순위를 파악하여 이를 기반으로 학점을 구하였다.

자세한 내용은 아래에 있으니, 혹여나 해당 문제를 해결하는 데에 어려움을 겪고 있다면 아래의 설명과 코드를 참고해보길 바란다.

필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 학생들의 성적(arr)과 홍익이의 성적(score)을 순차적으로 입력받는다.

 

2) arr의 값들을 반복문으로 살피면서, score의 값과 동일한 값을 찾는다.

만일 찾았다면, 해당 위치(i)를 기억하고 반복문을 빠져나온다.

 

3) 문제에 있는 각 학점의 등수를 참고하며, i의 값에 맞는 출력문을 수행한다.

출력을 수행하였다면, 실행 종료한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#define endl '\n'
using namespace std;

//백준 17826번 코드
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);	cout.tie(NULL);

	int arr[50];
	for (int i = 0; i < 50; i++) {
		cin >> arr[i];
	}
	int score;
	cin >> score;

	int i;
	for (i = 0; i < 50; i++) {
		if (arr[i] == score) {
			i++;	break;
		}
	}

	if (i <= 5) { cout << "A+" << endl; }
	else if (i <= 15) { cout << "A0" << endl; }
	else if (i <= 30) { cout << "B+" << endl; }
	else if (i <= 35) { cout << "B0" << endl; }
	else if (i <= 45) { cout << "C+" << endl; }
	else if (i <= 48) { cout << "C0" << endl; }
	else { cout << "F" << endl; }
}

 

제출 결과

백준 BOJ 17826번 나의 학점은? 문제 C++ 제출 결과

(2022.06.27 백준 17826번 문제 제출 결과)

반응형