https://www.acmicpc.net/problem/8979
8979번: 올림픽
입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 �
www.acmicpc.net
<풀이>
1. 국가 번호를 index로 해서 금메달, 은메달, 동메달 배열을 따로 생성하여 입력받는다.
2. 1번 국가부터 입력받는 N번 국가까지 K번 국가보다 잘한 국가 수를 찾는다.
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>
using namespace std;
int N, K;
int gold[1001];
int silver[1001];
int bronze[1001];
int res = 0;
int main() {
//입력
cin >> N >> K;
for (int i = 0; i < N; i++) {
int index;
cin >> index;
cin >> gold[index] >> silver[index] >> bronze[index];
}
//1번 국가부터 N번 국가까지 K번 국가보다 더 잘한 국가일 경우 res++
for (int i = 1; i <= N; i++) {
if (gold[i] > gold[K]) {
res++;
}
else if (gold[i] == gold[K]) {
if (silver[i] > silver[K]) {
res++;
}
else if (silver[i] == silver[K]) {
if (bronze[i] > bronze[K]) {
res++;
}
}
}
}
//출력
cout << res + 1;
}
|
구현에 대해 알아볼 수 있는 문제였습니다.
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[C++] 백준 8980 - 택배 (0) | 2020.04.30 |
---|---|
[C++] 백준 2512 - 예산 (0) | 2020.04.30 |
[C++] 백준 1726 - 로봇 (0) | 2020.04.30 |
[C++] 백준 2513 - 통학버스 (0) | 2020.04.30 |
[C++] 백준 2511 - 카드놀이 (0) | 2020.04.30 |