[백준] 15953. 상금 헌터

nayoon·2021년 7월 5일
0

Algorithm

목록 보기
53/55

문제

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

입력

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

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

출력

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

제출 코드

import sys
input = sys.stdin.readline

code2017 = {1: 500, 2: 300, 3: 200, 4: 50, 5: 30, 6: 10}
code2018 = {1: 512, 2: 256, 3: 128, 4: 64, 5: 32}
UNIT = 10 ** 4

def code2017_m(a):
    if a == 0 or a > 21:
        return 0
    
    cur = 0
    for i in range(1, 7):
        cur += i
        if a <= cur:
            return code2017[i] * UNIT
    
    
def code2018_m(b):
    if b == 0 or b > 31:
        return 0
    
    cur = 0
    for i in range(1, 6):
        cur += 2 ** (i-1)
        if b <= cur:
            return code2018[i] * UNIT


t = int(input())
for _ in range(t):
    a, b = map(int, input().split())
    print(code2017_m(a) + code2018_m(b))
profile
뚜벅뚜벅 열심히 공부하는 개발자

0개의 댓글