[백준 BOJ] 17826번 나의 학점은? (C++/cpp)
2022. 9. 27. 15:06ㆍPS (Program Solving)/BOJ (백준)
문제 설명
https://www.acmicpc.net/problem/17826
접근 방법 - 배열을 통한 기본적인 연산 문제
백준의 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; }
}
제출 결과
(2022.06.27 백준 17826번 문제 제출 결과)
반응형
'PS (Program Solving) > BOJ (백준)' 카테고리의 다른 글
[백준 BOJ] 2420번 사파리월드 (C++/cpp) (0) | 2022.09.28 |
---|---|
[백준 BOJ] 2839번 설탕 배달 (C++/cpp) (0) | 2022.09.27 |
[백준 BOJ] 3711번 학번 (C++/cpp) (0) | 2022.09.27 |
[백준 BOJ] 11942번 고려대는 사랑입니다 (C++/cpp) (0) | 2022.09.26 |
[백준 BOJ] 11659번 구간 합 구하기 4 (C++/cpp) (0) | 2022.09.26 |