[백준] 1049. 기타줄(실버4)

백준(실버4) - 1049. 기타줄(실버4)



풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		//1. 끊어진 기타줄의 개수 n, 기타줄 브랜드 m개
		//2. 6개가 들어있는 패키지의 가격, 낱개로 살 때의 가격
		//3. 돈의 수가 최소

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());

		int n = Integer.parseInt(st.nextToken());
		int m = Integer.parseInt(st.nextToken());
		int sum = 0;

		//제일 작은 패키지, 낱개의 가격만 알면 된다.
		int pack = Integer.MAX_VALUE;
		int one = Integer.MAX_VALUE;

		for(int i=0; i<m; i++) {
			st = new StringTokenizer(br.readLine());
			int p = Integer.parseInt(st.nextToken());
			int o = Integer.parseInt(st.nextToken());
			pack = Math.min(pack, p);
			one = Math.min(one, o);
		}
		while(n>0) {
			//n이 6보다 클때, one * 6과 pack의 가격만 비교해서 더 작은 값으로 계산
			if(n>=6) {
				int temp = n/6;
				if(one * 6 > pack) {//pack으로 계산
					sum += pack * temp;
				}else {
					sum += one * 6 * temp;
				}
				n%=6;
			}else {
				if(one * n < pack) {
					sum += one * n;
				}else {
					sum += pack;
				}
				n=0;
			}
		}
		System.out.println(sum);
	}
}

좋은 웹페이지 즐겨찾기