반응형
문제 출처 :
https://www.acmicpc.net/problem/1205
알고리즘 분석 :
문제 해결에 필요한 사항
1. 구현
-1이 되는 경우는 다음과 같다.
랭킹 리스트의 수(p)와 사람 수(n)이 같은데 그때 랭킹 마지막 점수가 현재 내 점수보다 크거나 같다면 항상 마지막에 위치하게 되므로 -1이다.
그 외에는 for문을 돌며 rank = 1부터 시작하여 자신의 랭킹 위치에 맞는 곳에 배치하면 된다.
소스 코드 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #include <iostream> #include <cstdio> #include <algorithm> #include <vector> using namespace std; vector<int> arr; int main() { int n, song, p; scanf("%d %d %d", &n, &song, &p); for (int i = 0; i < n; i++) { int val; scanf("%d", &val); arr.push_back(val); } if (n == p && arr[n - 1] >= song) return !printf("-1"); int rank = 1; for (int i = 0; i < n; i++) { if (arr[i] > song) rank++; else break; } return !printf("%d", rank); } // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
반응형
'Applied > 알고리즘 문제풀이' 카테고리의 다른 글
[14950번] 정복자 (0) | 2018.02.23 |
---|---|
[11811번] 데스스타 (0) | 2018.02.22 |
[11400번] 단절선 (0) | 2018.02.22 |
[11266번] 단절점 (0) | 2018.02.21 |
[2792번] 보석 상자 (2) | 2018.02.21 |