PS [30 일차]

Daniel·2022년 8월 21일
0

PS

목록 보기
30/32
post-thumbnail

문제번호

package Main;

import java.util.*;

public class Main {

	public static void main(String[] args) {

		Scanner in = new Scanner (System.in);
		
		int brokenString = in.nextInt();
		int brand = in.nextInt();
		
		int minPackage = in.nextInt();
		int minIdividual = in.nextInt();
		
		for (int i = 0; i < brand - 1 ;i++) {
			int inputPackage = in.nextInt();
			int inputIdividual = in.nextInt();
			if (inputPackage < minPackage)
				minPackage = inputPackage;
			if (inputIdividual < minIdividual)
				minIdividual = inputIdividual;
		}
		
		if (minPackage/6 >= minIdividual)
			System.out.println(brokenString * minIdividual);
		else {
			int result = brokenString / 6 * minPackage;
			brokenString %= 6;
			if (brokenString * minIdividual > minPackage) {
				result += minPackage;
			}
			else {
				result += brokenString * minIdividual;
			}
			System.out.println(result);
		}
	}
}

문제

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

풀이

  • 패키지와 낱개 중 가격대비 개수가 많은 패키지와 낱개를 찾는다.
    • 낱개의 가성비가 더 좋은 경우 낱개로만 구매하고
    • 패키지의 가성비가 더 좋은 경우
      • 끊어진 줄이 6개 이상인 경우 패키지 구매후 갈아야하는 나머지 줄에 대해 패키지와 낱개의 가성비를 따진다.
profile
폐쇄

0개의 댓글