제가 이해한 BOOKSTORE 문제 해결방법은 가장 적은 포인트를 가지고 있는 책을 마지막에 구입하여 서점별로 총가격을 측정하여 비교 하는 것입니다. 이렇게 예제 문제의 값을 출력하여 결과값은 확인 후 제출하였으나 오답처리 되어 질문과 답변 게시판에서 관련 문제를 찾아 보았습니다.
1
3 1
5 3
4 2
1 0
이 값에 정답이 6이라는 답글을 보았는데 저는 아무리 봐도 5가 답인 것 같습니다. 제가 어떤 부분을 놓치고 있는지 알고싶습니다.
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);
}
}
tajano5
제가 이해한 BOOKSTORE 문제 해결방법은 가장 적은 포인트를 가지고 있는 책을 마지막에 구입하여 서점별로 총가격을 측정하여 비교 하는 것입니다. 이렇게 예제 문제의 값을 출력하여 결과값은 확인 후 제출하였으나 오답처리 되어 질문과 답변 게시판에서 관련 문제를 찾아 보았습니다.
1
3 1
5 3
4 2
1 0
이 값에 정답이 6이라는 답글을 보았는데 저는 아무리 봐도 5가 답인 것 같습니다. 제가 어떤 부분을 놓치고 있는지 알고싶습니다.
아래는 제가 자바로 작성한 코드입니다.
import java.util.Arrays;
import java.util.Scanner;
public class Main {
}
.
9년 전