백준_15953_상금헌터

wstudee·2021년 10월 4일
0

JAVA_백준

목록 보기
1/1

문제

풀이

package baekjoon.problem.kakao;

import java.util.Scanner;

public class K15953_1 {
	/* 2017년 본선진출자 100명중 21명에게 상금부여
	 * 1등 500만, 2등 300만, 3등 200만, 4등 50만, 5등 30만, 6등 10만 
	 * 
	 * 2018년 본선진출자 64명중 31명에게 상금부여 
	 * 1등 512만, 2등 256만, 3등 128만, 4등 64만, 5등 32만
	 * 
	 * 제이지의 상상력 횟수 T(1<= T <=1000)
	 */  
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt();
		int[] sumArr = new int[T];
		
		for(int i = 0 ; i < T ; i++) {
			int a = sc.nextInt();
			int b = sc.nextInt();
			sumArr[i] = calcA(a) + calcB(b);
		}
		
		for(int sum : sumArr) {
			System.out.println(sum);
		}
	}
	
	// 상금 계산
	public static int calcA(int a){
		int[] aCnt = new int[]{1,2,3,4,5,6};
		int[] aMoney = new int[]{500, 300, 200, 50, 30, 10};
		int cnt = 0;
		if(a > 0) {
			for(int i = 0 ; i < aCnt.length ; i++) {
				cnt += aCnt[i];
				if(a <= cnt) {
					return aMoney[i]*10000;
				}
			}
		}
		return 0;
	}
	
	public static int calcB(int b) {
		int[] bCnt = new int[]{1,2,4,8,16};
		int[] bMoney = new int[]{512, 256, 128, 64, 32};
		int cnt = 0;
		if( b > 0) {
			for(int i = 0 ; i < bCnt.length ; i++) {
				cnt += bCnt[i];
				if(b <= cnt) {
					return bMoney[i]*10000;
				}
			}
		}
		return 0;
	}


}

2021.10.04

  • 조건에 빈틈이 있어서 엄청 여러번 틀림 ㅎ..

0개의 댓글