반응형
석차 구하기
- n 입력.
- n명의 학생들의 성적이 있다. 이 학생들의 성적을 입력받고, 학생들의 등수를 배열 순서대로 출력하라.
- ex. 90 85 92 95 90 입력 => 3 5 2 1 3 출력
- 같은 점수의 학생은 높은 등수로 동일하게 처리한다. 단, 그보다 점수가 낮은 학생은 동일한 점수를 가진 학생들만큼 등수가 내려간다. (1등이 3명일 경우 그 다음은 4등)
풀이
#include <iostream>
#include <vector>
using namespace std;
int main() {
int i, j, n;
cin >> n;
vector<int> a(n);
vector<int> b(n);
for (i=0; i<n; i++) {
cin >> a[i];
b[i] = 1;
}
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
if (a[i] < a[j]) {
b[i] += 1;
}
}
}
for (i=0; i<n; i++) {
cout << b[i] << " ";
}
return 0;
}
- 브루트 포스의 간단한 문제였다. 어렵게 생각하다 또 시간을 낭비했다.
- 문제를 많이 풀어 브루트 포스의 문제가 어떻게 나오지는지 익혀둬야겠다.
반응형
'💻 CS > 알고리즘 연습' 카테고리의 다른 글
[알고리즘 연습] N!에서 0의 개수 (by. C++) (0) | 2021.01.14 |
---|---|
[알고리즘 연습] N!의 표현법 (feat. 소인수분해) (by. C++) (0) | 2021.01.14 |
[알고리즘 연습] 온도의 최대값 (by C++) (0) | 2021.01.12 |
[알고리즘 연습] 요세푸스 문제 (0) | 2020.08.23 |
[알고리즘 연습] 두 부분집합의 균형 맞추기 (1) | 2020.08.07 |