백준 알고리즘

[C언어] 백준알고리즘 15953번 상금 헌터 (카카오 코드 페스티벌 2018 예선)

컴공코딩러 2019. 3. 16. 04:41

https://www.acmicpc.net/problem/15953

문제


2017년에 이어, 2018년에도 카카오 코드 페스티벌이 개최된다!

카카오 코드 페스티벌에서 빠질 수 없는 것은 바로 상금이다. 2017년에 개최된 제1회 코드 페스티벌에서는, 본선 진출자 100명 중 21명에게 아래와 같은 기준으로 상금을 부여하였다.

순위상금인원
1등500만원1명
2등300만원2명
3등200만원3명
4등50만원4명
5등30만원5명
6등10만원6명

2018년에 개최될 제2회 코드 페스티벌에서는 상금의 규모가 확대되어, 본선 진출자 64명 중 31명에게 아래와 같은 기준으로 상금을 부여할 예정이다.

순위상금인원
1등512만원1명
2등256만원2명
3등128만원4명
4등64만원8명
5등32만원16명

제이지는 자신이 코드 페스티벌에 출전하여 받을 수 있을 상금이 얼마인지 궁금해졌다. 그는 자신이 두 번의 코드 페스티벌 본선 대회에서 얻을 수 있을 총 상금이 얼마인지 알아보기 위해, 상상력을 발휘하여 아래와 같은 가정을 하였다.

  • 제1회 코드 페스티벌 본선에 진출하여 a등(1 ≤ a ≤ 100)등을 하였다. 단, 진출하지 못했다면 a = 0으로 둔다.

  • 제2회 코드 페스티벌 본선에 진출하여 b등(1 ≤ b ≤ 64)등을 할 것이다. 단, 진출하지 못했다면 b = 0으로 둔다.

제이지는 이러한 가정에 따라, 자신이 받을 수 있는 총 상금이 얼마인지를 알고 싶어한다.


입력


첫 번째 줄에 제이지가 상상력을 발휘하여 가정한 횟수 T(1 ≤ T ≤ 1,000)가 주어진다.

다음 T개 줄에는 한 줄에 하나씩 제이지가 해본 가정에 대한 정보가 주어진다. 각 줄에는 두 개의 음이 아닌 정수 a(0 ≤ a ≤ 100)와 b(0 ≤ b ≤ 64)가 공백 하나를 사이로 두고 주어진다.


출력


각 가정이 성립할 때 제이지가 받을 상금을 원 단위의 정수로 한 줄에 하나씩 출력한다. 입력이 들어오는 순서대로 출력해야 한다.



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
#include <stdio.h>
void gold_hunter()
{
    int N;
    int a, b;
    int i;
    int sum = 0;
    int arr[6= { 500,300,200,50,30,10 };
    int arr2[5= { 512,256,128,64,32 };
    int rank1[6= { 1,2,3,4,5,6 };
    int rank2[5= { 1,2,4,8,16 };
    int prize1, prize2;
    int cnt1;
    int cnt2;
    scanf("%d"&N);
    for (i = 0;i < N;i++)
    {
        scanf("%d %d"&a, &b);
        sum = 0;
        cnt1 = cnt2 = 0;
        prize1 = prize2 = 0;
        if (a > 0&&a<22)
        {
            while (a > 0)
                a -= rank1[cnt1++];
            prize1 = arr[cnt1 - 1];
        }
        if (b > 0&&b<32)
        {
            while (b > 0)
                b -= rank2[cnt2++];
            prize2 = arr2[cnt2 - 1];
        }
        sum = (prize1*10000+ (prize2*10000);
        printf("%d\n", sum);
    }
}
int main()
{
    gold_hunter();
}
cs

if 문 노가다로해도되긴하는데 

그냥 여러변수써서 해보았다. 2017 1~22사이 2018은 1과 31 이외이면 0인걸로 예외처리한후 나머지는 값으로처리함