코드질문
254
작성한 질문수 6
안녕하세요 자바 코딩테스트 강의 수강중인 학생입니다. 항상 좋은 강의 감사합니다.
선생님께서 앞에 결정알고리즘 개념을 설명한 상태에서 혼자 코드를 작성했습니다. 작성한 후 채점을 받으니 오답처리 되어, 강의를 마져 보았습니다. 제가 처음 작성한 코드와 접근 방식은 비슷한 것 같은데, 제 코드로 채점하면 오류가 떠서 혼자 계속 고민 해봤는데, 해결이 안되서 글 올립니다.
감사합니다. 좋은 하루 되십시오.
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public boolean isOkay(int mid, int m, int[] arr) {//중간값이 적절한건지 판단해주는 함수
int sum = 0;
int cnt = 1;
for(int i=0; i<arr.length; i++) {
sum = sum+arr[i];
if(sum>mid) {//앞에서부터 합이 mid 넘으면 카운트 업
cnt++;
sum = arr[i];//카운트하고 합 초기화
}
}
if(cnt<=m) return true;//카운트가 m보다 작아야함
return false;
}
public int solution(int n, int m, int[] arr) {
int answer = 0;
Arrays.sort(arr);
int lt = arr[n-1];//외쪽값은 배열의 최대값 => 적어도 DVD길이는 이만큼은 되야함
int rt = 0;
for(int x: arr)rt = rt+x;//오른쪾값은 배열의 합 => DVD길이가 이거보다 클 이유가 없음
while(lt<=rt) {
int mid = (rt+lt)/2;
if (isOkay(mid, m, arr)){
rt = mid-1;
answer = mid;
System.out.println(answer);
}
else lt = mid+1;
}
return answer;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int m = kb.nextInt();
int[] arr = new int[n];
for(int i=0; i<n; i++) {
arr[i] = kb.nextInt();
}
System.out.println(T.solution(n, m, arr));
}
}
답변 1
0
안녕하세요^^
유효성 검사 함수에서 문제가 있는 것 같습니다.
반례입니다. 답은 24입니다.
10 3 6 5 8 5 6 8 7 6 6 7
채점사이트에서 오답입니다를 클릭하면 답이 나오지 안는 입력케이스를 볼 수 있습니다. 강의소개란에 입력케이스를 볼 수 있는 방법을 설명해 놓았습니다. 앞으로 오답이 나오면 이 기능을 사용해 스스로 디버그해 보세요.
안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.
0
33
1
갑자기 채점 사이트가 바뀌었어요
0
34
1
문제 리스트 페이지
0
29
1
채점 사이트 관련 질문드립니다
0
24
1
봉우리 문제 질문입니다
0
84
2
씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?
0
65
0
이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?
0
72
0
가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법
0
67
1
좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ
0
85
2
6-7 강의에서
0
48
1
6-6. 장난꾸러기 질문 있습니다.
0
46
1
강의 수강후 코딩테스트
0
111
1
answer 변수 사용 여부
0
46
1
2중 for문
1
85
2
2-11. 임시반장정하기 (Runtime Error)
0
63
1
혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?
0
70
1
이런 풀이는 어떨까요
0
44
1
자바 스트림 방식의 효율성 질문 드립니다.
0
57
1
알고리즘 자료 구조들..
0
63
1
StringBuilder vs BufferdWriter
0
48
1
원더랜드(프림)
0
50
1
이런 코드는 어떤가요?
0
61
1
bfs 풀이
0
57
1
병합정렬
0
57
1





