BOOKSTORE 문제를 잘 이해 못해 질문합니다.

  • tajano5
    tajano5

    제가 이해한 BOOKSTORE 문제 해결방법은 가장 적은 포인트를 가지고 있는 책을 마지막에 구입하여 서점별로 총가격을 측정하여 비교 하는 것입니다. 이렇게 예제 문제의 값을 출력하여 결과값은 확인 후 제출하였으나 오답처리 되어 질문과 답변 게시판에서 관련 문제를 찾아 보았습니다.

    1
    3 1
    5 3
    4 2
    1 0

    이 값에 정답이 6이라는 답글을 보았는데 저는 아무리 봐도 5가 답인 것 같습니다. 제가 어떤 부분을 놓치고 있는지 알고싶습니다.

    아래는 제가 자바로 작성한 코드입니다.

    import java.util.Arrays;
    import java.util.Scanner;

    public class Main {

    static Scanner stdin = new Scanner(System.in);
    static int N;
    static int M;
    static int[] res;
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int numOfTest = stdin.nextInt();
        res = new int[numOfTest];
    
        int[][] bookList = null;
        int[] tmp =null;
        int[] tmpPoint=null;
        int[] minPoint=null;
        int[] resTmp= null;
    
        int count=0;
        int count_point=0;
    
        for (int t = 0; t < numOfTest; t++) {
            N = stdin.nextInt();
            M = stdin.nextInt();
    
            bookList = new int[N][2*M];
            tmp = new int[M];
            tmpPoint = new int[M];
            minPoint= new int[M];
            resTmp = new int[M];
    
            for (int i = 0; i < M; i++) {
                minPoint[i]=10000;
            }
    
            for (int i = 0; i < N; i++) {
                count=0;
                count_point=0;
                for (int j = 0; j < 2*M; j++) {
                    bookList[i][j]=stdin.nextInt();
    
                    if(j%2==0){
                        tmp[count]=tmp[count]+bookList[i][j];
                        count++;
                    }
                    else{
                        tmpPoint[count_point]=tmpPoint[count_point]+bookList[i][j];
    
                         if(minPoint[count_point]>bookList[i][j]){
                            minPoint[count_point]=bookList[i][j];
                        }
                        count_point++;
                    }
    
                }//삼중 for 끝
            }//이중 for 끝
    
            for (int i = 0; i < M; i++) {
                resTmp[i]=tmp[i]-tmpPoint[i]+minPoint[i];
            }
    
            Arrays.sort(resTmp);
            res[t]=resTmp[0];
    
        }//for 끝
    
        for (int i : res) {
            System.out.println(i);
        }
    
    
    
    }

    }
    .


    9년 전
4개의 댓글이 있습니다.
  • JongMan
    JongMan

    어느 순서대로 책을 사면 5원만 낼 수 있나요?


    9년 전 link
  • tajano5
    tajano5

    5+4-3+1-2해서 5원이라고 생각합니다; 책으로만 뵙다가 친히 답글 달아주시니 기분이 묘하네요 ㅎㅎㅎ;


    9년 전 link
  • nosiar
    nosiar

    1원짜리를 살때는 포인트를 1밖에 못 쓰지 않을까요


    9년 전 link
  • tajano5
    tajano5

    아하 이제 이해가 갑니다 ㅠㅠ 감사합니다.


    9년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.