작성
·
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”가 음수인 경우는 프로그램이 비정상적으로 종료되었음을 의미하는데, 이는 메모리 초과, 실행 시간 초과, 런타임 에러 등 다양한 원인으로 발생할 수 있습니다.
해결 방법으로는 다음을 고려해 보시기 바랍니다:
- 입력값 범위를 확인하여 배열 크기가 충분한지 검토해 보세요.
- 예외 상황을 고려하였는지 확인해보세요 (예: 모든 입력값이 같은 경우, 최대값 설정 시 경계 조건 등).
- 특정 테스트 케이스에서만 실패하는 경우, 그 케이스를 직접 생성해보고 디버깅을 통해 문제를 찾아보세요.
코드 자체에 문제가 없으나 특정 케이스에서만 오류가 발생하는 경우, 문제의 조건을 다시 한 번 꼼꼼히 검토하면서 그 조건을 충족하는지 확인하시기 바랍니다.
강의 및 문제에 대한 더 자세한 도움이 필요하시면, 해당 강의의 ‘질문하기’ 기능을 활용하거나 직접 강사님께 문의하시는 것도 좋은 방법입니다.
프로그래밍 공부는 때로 예상치 못한 문제에 직면할 때가 많지만, 그 과정에서 많은 것을 배울 수도 있습니다. 계속 도전하시면서 문제를 해결해 나가시길 바랍니다.