inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

9. 뮤직비디오(결정알고리즘)

코드질문

254

simononze

작성한 질문수 6

0

안녕하세요 자바 코딩테스트 강의 수강중인 학생입니다. 항상 좋은 강의 감사합니다.

선생님께서 앞에 결정알고리즘 개념을 설명한 상태에서 혼자 코드를 작성했습니다. 작성한 후 채점을 받으니 오답처리 되어, 강의를 마져 보았습니다. 제가 처음 작성한 코드와 접근 방식은 비슷한 것 같은데, 제 코드로 채점하면 오류가 떠서 혼자 계속 고민 해봤는데, 해결이 안되서 글 올립니다.

감사합니다. 좋은 하루 되십시오.

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

코테 준비 같이 해요! java

답변 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