SW
[백준 15953] 상금 헌터 본문
0. 제목
- 백준 15953 상금 헌터
- BOJ 15953 상금 헌터
- C++ 15953 상금 헌터
1. 문제
https://www.acmicpc.net/problem/15953
2. 풀이
- 조건문으로 범위를 지정하는 방식으로 구현하는 것도 가능하다.
- 아래 풀이는 다른 방식이다.
- 처음에는 각 등수별로 지정되는 인원들을 vector에 담으려고 하였으나 풀다보니 vector가 필요없었다.
- 상금을 배열에 담아두고 등수와 등수에 할당 된 인원수에 대한 반복문을 이용하였다.
- 입력받은 등수에 해당하는 등수와 상금배열의 인덱스의 관계를 이용해 같으면 변수 firstGet, secondGet에 담았다.
- 합에 10000을 곱해주면 상금의 합이 구해진다.
3. 코드
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
40
41
42
43
44
45
46
47
48
49
50
|
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main(int argc, const char * argv[]) {
int T;
int a = 0;
int b = 0;
int rank = 1;
int firstReward[6] = {500, 300, 200, 50, 30, 10};
int firstGet = 0;
int secondReward[5] = {512, 256, 128, 64, 32};
int secondGet = 0;
//vector<int> v[8];
cin >> T;
for(int i = 0; i < T; i++){
cin >> a >> b;
rank = 1;
firstGet = 0;
for(int j = 1; j <= 6; j++){
for(int k = 1; k <= j; k++){
//v[j].push_back(rank);
if(a == rank){
firstGet = firstReward[j-1];
}
rank++;
}
}
rank = 1;
secondGet = 0;
for(int j = 0; j <= 4; j++){
for(int k = 1; k <= pow(2,j); k++){
//v[j].push_back(rank);
if(b == rank){
secondGet = secondReward[j];
}
rank++;
}
}
cout << (firstGet + secondGet) * 10000 << '\n';
}
return 0;
}
|
'대학교 > Algorithm' 카테고리의 다른 글
[백준 1197] 최소 스패닝 트리 (0) | 2020.02.19 |
---|---|
[백준 1476] 날짜 계산 (0) | 2020.02.19 |
[백준 2133] 타일 채우기 (0) | 2020.02.17 |
[백준 4963] 섬의 개수 (0) | 2020.02.16 |
[백준 1966] 프린터 큐 (0) | 2020.02.16 |
Comments