Til8


title: 2025-08-05 author: 강병호 date: 2025-08-05 category: TIL/강병호/2025/08 layout: post —

백준 Q1059 문제

1 번 코드에서의 에러 발생

package baekjoon;

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

public class Q1049 {

    // N M
    // 패키지 가격, 낱개 가격 * M

    public static void main(String[] args) throws IOException {
        int minEachString = Integer.MAX_VALUE;
        int minPackageString = Integer.MAX_VALUE;

        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());

        // 낱개 중 min
        // 패키지 중 min
        for (int i = 0; i < M; i++) {
            st = new StringTokenizer(br.readLine());
            minPackageString = Math.min(Integer.parseInt(st.nextToken()), minPackageString);
            minEachString = Math.min(Integer.parseInt(st.nextToken()), minEachString);
        }
//        System.out.println("minEachString : " + minEachString);

//        System.out.println("minPackageString : " + minPackageString);
        // 남은 N%6 * minEachString 보다 package 가격이 더 싼 경우
        int result;

        if (N * minEachString < minPackageString) {
            result = N * minEachString;
        } else if ((N%6) * minEachString > minPackageString) {
            result = minPackageString * (N/6 + 1);
        } else {
            result = minPackageString * (N/6) + minEachString * (N%6);
        }

        System.out.println(result);
    }
}

다음의 코드 부분 조건 변경 이후 통과했지만 아직 그 이유를 찾지 못함… N이라고 해도 더 작은 케이스면 개별로 구매하는 것이 맞다고 생각하고 모든 에외 케이스들 다 찾아봐도 안되는 문제… 추후 더 반례 찾은 후 블로그 포스팅할 예정..

       if (6 * minEachString < minPackageString) { // N -> 6
            result = N * minEachString;
        } else if ((N%6) * minEachString > minPackageString) {
            result = minPackageString * (N/6 + 1);
        } else {
            result = minPackageString * (N/6) + minEachString * (N%6);
        }

results matching ""

    No results matching ""