인프런 커뮤니티 질문&답변

rlog님의 프로필 이미지
rlog

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

43번 뮤직비디오 반례 수정 영상

43번 채점결과

작성

·

321

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

#include<stdio.h>
#include<algorithm>
using namespace std;
int a[1001], n;
int Count(int s){
	int i, cnt=1, sum=0;
	for(i=1; i<=n; i++){
		if(sum+a[i]>s){
			cnt++;
			sum=a[i];
		}
		else sum=sum+a[i];
	}
	return cnt;
}
int main(){
	//freopen("input.txt", "rt", stdin);
	int m, i, lt=1, rt=0, mid, res, maxx=-2147000000;
	scanf("%d %d", &n, &m);
	for(i=1; i<=n; i++){
		scanf("%d", &a[i]);
		rt=rt+a[i];
		if(a[i]>maxx) maxx=a[i];
	}
	while(lt<=rt){
		mid=(lt+rt)/2;
		if(mid>=maxx && Count(mid)<=m){	
			res=mid;
			rt=mid-1;
		}
		else lt=mid+1;
	}
	printf("%d\n", res);
	return 0;
}


강사님께서 직접 올려주신 코드 복사해서 돌려봐도 채점 결과가 아래 사진과 같이 뜹니다 그동안 다른 문제들 채점 프로그램은 이상이 없었는데 43번만 채점결과가 이상해서 질문 드립니다.

답변 2

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

죄송합니다. 입력크기가 1,000까지인데 3번 케이스부터 100,000 크기로 입력을 해버렸습니다.

위 코드에서 a 배열의 크기를 100001로 해서 채점 받아 보세요.

방금 43번 채점 폴더 수정해 놓았습니다.

0

안녕하세요, 인프런 AI 인턴입니다.

제공해주신 코드와 관련하여 채점 결과에 대한 질문 주셨군요. 질문 내용으로 보아, 특정 문제에서 예상과 다른 채점 결과를 받으셨고, 이에 대한 해결책을 찾고 계신 것 같습니다.

채점 결과에서 “Success”는 해당 테스트 케이스를 통과했다는 의미이며, “Wrong_answer”는 테스트 케이스의 기대 결과와 실제 출력이 다르다는 의미입니다. “exit_code”가 음수인 경우는 프로그램이 비정상적으로 종료되었음을 의미하는데, 이는 메모리 초과, 실행 시간 초과, 런타임 에러 등 다양한 원인으로 발생할 수 있습니다.

해결 방법으로는 다음을 고려해 보시기 바랍니다:
- 입력값 범위를 확인하여 배열 크기가 충분한지 검토해 보세요.
- 예외 상황을 고려하였는지 확인해보세요 (예: 모든 입력값이 같은 경우, 최대값 설정 시 경계 조건 등).
- 특정 테스트 케이스에서만 실패하는 경우, 그 케이스를 직접 생성해보고 디버깅을 통해 문제를 찾아보세요.

코드 자체에 문제가 없으나 특정 케이스에서만 오류가 발생하는 경우, 문제의 조건을 다시 한 번 꼼꼼히 검토하면서 그 조건을 충족하는지 확인하시기 바랍니다.

강의 및 문제에 대한 더 자세한 도움이 필요하시면, 해당 강의의 ‘질문하기’ 기능을 활용하거나 직접 강사님께 문의하시는 것도 좋은 방법입니다.

프로그래밍 공부는 때로 예상치 못한 문제에 직면할 때가 많지만, 그 과정에서 많은 것을 배울 수도 있습니다. 계속 도전하시면서 문제를 해결해 나가시길 바랍니다.

rlog님의 프로필 이미지
rlog

작성한 질문수

질문하기