본문 바로가기

코딩테스트/Baekjoon

(Python 3) 백준 알고리즘 15953 상금 헌터

문제 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


코드


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
import sys
 
def A(x):
    if x == 1 :return 5000000
    elif 1<x<=3 : return 3000000 
    elif 3<x<=6 : return 2000000
    elif 6<x<=10 : return 500000
    elif 10<x<=15 : return 300000
    elif 15<x<=21 : return 100000
    else : return 0
    
    
def B(x): 
    if x == 1 : return 5120000 
    elif 1<x<=3 : return 2560000 
    elif 3<x<=7 : return 1280000
    elif 7<x<=15 : return 640000
    elif 15<x<=31 : return 320000
    else : return 0
 
 
= int(sys.stdin.readline())
 
for i in range(N):
    a, b = map(int, sys.stdin.readline().split())
    print(A(a)+B(b))
cs


코드 설명

시간제한이 1초로 숫자를 입력받는 부분에서 sys.stdin.readline()를 사용해 시간을 줄였다.

등수에 맞춰 얻을 수 있는 상금을 반환한다.


알고리즘 분류





반응형