백준 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
6
8 4
13 19
8 10
18 18
8 25
13 16
예제 출력 1
1780000
620000
1140000
420000
820000
620000
c언어
#include <stdio.h>
int main()
{
	int T,t=1;
	int rank1,rank2,reward;
	
	scanf("%d",&T);
	while(t!=T+1)
	{
		scanf("%d %d",&rank1,&rank2);
		
		if(rank1<=21 && rank1>0)
		{ 
			switch(rank1)
			{
				case 1:
					reward = 500;
					break;
				case 2: case 3:
					reward = 300;
					break;
				case 4: case 5: case 6:
					reward = 200;
					break;
				case 7: case 8: case 9: case 10:
					reward = 50;
					break;
				case 11: case 12: case 13: case 14: case 15:
					reward = 30;
					break;
				default: reward = 10; 
					
			}
		}
		else
		{
			reward = 0;
		 } 
			
		if(rank2==1)
		{
			reward+=512;	
		}
		else if(rank2==2||rank2==3)
		{
			reward+=256;
		}
		else if(rank2>=4&&rank2<=7)
		{
			reward+=128;	
		}	
		else if(rank2<=31&&rank2>=16)
		{
			reward += 32;
		}
		else if(rank2<=15&&rank2>=8)
		{
			reward += 64;
		}
		else
		{
			reward += 0;	
		}			
		printf("%d\n",reward*10000);
		t++;
	}
	return 0;
}
python
def final2017(rank1):
    reward1 = 0
    if rank1 in [1]:
        reward1 += 5000000
    elif rank1 in [2,3]:
        reward1 += 3000000
    elif rank1 in range(4,6):
        reward1 += 2000000
    elif rank1 in range(7,10):
        reward1 += 500000
    elif rank1 in range(11,15):
        reward1 += 300000
    elif rank1 in range(16,21):
        reward1 += 100000
    else:
        reward1 = 0
    return reward1
def final2018(rank2):
    reward2 = 0
    if rank2 in [1]:
        reward2 += 5120000
    elif rank2 in [2,3]:
        reward2 += 2560000
    elif rank2 in range(4,7):
        reward2 += 1280000
    elif rank2 in range(8,15):
        reward2 += 640000
    elif rank2 in range(16,31):
        reward2 += 320000
    else:
        reward2 = 0
    return reward2
testcase = int(input())
for i in range(testcase):
    rank1,rank2 = map(int,input().split())
    print(final2017(rank1) + final2018(rank2))