질문있습니다.
241
작성한 질문수 13
밑에 코드와 같이 강의를 듣기 전에 먼저 코드를 작성해보았습니다. 선생님 강의 내용에서는 함수를 사용했지만 저는 함수 대신 다른 방법으로 짰는데 모두 wrong answer이 나오네요ㅠㅠ
계속해서 어디 부분이 틀렸는지 보지만 알고리즘은 맞는 듯해보이는데 혹시 어디서 오류가 발생했나요?
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
int main() {
int n, m, tmp, cnt=0, mid = 0, start = 1, end;
scanf("%d %d",&n,&m);
vector <int> array(n);
for (int i = 0; i < n; i++){
scanf("%d",&array[i]);
end = end + array[i];
}
while (start <= end){
int pl = 0;
mid = (start + end) / 2;
for (int i = 0; i < n; i++){
pl = pl + array[i];
if (pl > mid) {
cnt++;
pl = array[i];
}
}
if (cnt <= m) {
end = mid - 1;
tmp = mid;
}
else start = mid + 1;
}
printf("%d",tmp);
return 0;
}
답변 2
0
안녕하세요^^
아래 for문이 돌기전에 항상 cnt=0으로 초기화를 해야 합니다.
for (int i = 0; i < n; i++){
pl = pl + array[i];
if (pl > mid) {
cnt++;
pl = array[i];
}
}
그리고 위 for문이 카운팅을 제대로 못하고 있습니다.
채점폴더의 in1.txt 열면 입력예가 있습니다. wrong answer 가 나오는 데이터를 가지고 디버그해 보세요.
in1.txt의 정답은 out1.txt에 있습니다. 스스로 디버그해보세요.
테스트 케이스 질문
0
374
1
병합정렬 시간복잡도 질문
0
464
1
41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.
0
1351
2
질문드립니다.
0
378
1
질문드립니다!
0
432
1
dev 프로그램 질문
0
275
1
문제가 이해가 안되요
0
376
1
4번 나이차이 문제 접근법 질문 드립니다.
0
307
1
source file not compiled
0
1050
3
59번 질문드립니다.
0
373
1
25번 문제 질문
0
349
1
4. 나이차이 문제 질문입니다.
0
374
1
90번 라이언 킹 심바 1번 테스트 케이스
0
470
1
71번 문제 전역 변수 질문 있습니다
0
365
1
75번, 79번 priority_queue관련
1
356
1
75.최대 수입 스케줄
0
401
2
복면산 정답의 수
0
432
1
테스트 케이스에 대해서
0
447
1
수업 내용 질문입니다!
1
233
1
풀어보면 좋은 문제 목록 - 2580 스토쿠 DFS 질문입니다!!
0
825
2
12. 플로이드-와샬(그래프 최단거리) . 27:25초
0
255
1
다른 풀이 방식
0
317
1
크루스칼 vs 프림
0
309
1
숫자 총개수 small 질문있습니다.
0
243
1





