SW Expert Academy의 1983번 문제인 조교의 성적 매기기를 풀어봅시다!
문제는 무단 복제를 금하므로 직접 홈페이지에 들어가셔서 보시기 바랍니다.
SW Expert Academy 홈페이지:
https://swexpertacademy.com/main/main.do
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
다음은 코드를 보시죠~
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int t; //test case
int n; //student
int k; //k번째
int cnt = 1;
cin >> t;
while (t--) {
double arr[100][3] = {};
double temp = 0;
string result;
vector<double>store;
int degree;
cin >> n >> k;
if (n < k) return -1;
for (int i = 0; i < n; i++) {
double sum = 0;
cin >> arr[i][0] >> arr[i][1] >> arr[i][2];
sum += arr[i][0] * 0.35 + arr[i][1] * 0.45 + arr[i][2] * 0.20;
if (i == k-1) {
temp = sum;
}
store.push_back(sum);
}
sort(store.begin(), store.end());
for (int i = 0; i < 10; i++){
for (int j = 0; j < store.size() / 10; j++) {
if (store[(i * store.size() / 10) + j] == temp) {
degree = i + 1;
break;
}
}
}
if (degree == 10) {
result = "A+";
}else if (degree == 9) {
result = "A0";
}else if (degree == 8) {
result = "A-";
}else if (degree == 7) {
result = "B+";
}else if (degree == 6) {
result = "B0";
}else if (degree == 5) {
result = "B-";
}else if (degree == 4) {
result = "C+";
}else if (degree == 3) {
result = "C0";
}else if (degree == 2) {
result = "C-";
}else if (degree == 1) {
result = "D0";
}
cout << "#" << cnt++ << " " << result << "\n";
}
return 0;
}
너무 무식하게 짰나요? ㅎㅎ 더 좋은 방법있으시면
공유해주세요~
'Study > Baekjoon & SW Expert Academy' 카테고리의 다른 글
[ SW Expert Academy : 1984번 중간 평균값 구하기 ] (2) | 2019.11.02 |
---|---|
[백준 : 1152번 단어의 개수] (0) | 2019.11.02 |
[백준 : 1149번 RGB거리] (0) | 2019.10.28 |
[ SW Expert Academy: 1926, 1979 ] (0) | 2019.10.27 |
[백준 : 1008, 1076, 1110 ] (0) | 2019.10.27 |