44번 질문 있습니다
333
작성한 질문수 23
43번 문제는 이제 풀 수 있어서 44번 문제도 43번 처럼 진행했습니다. 그런데 3이 안나오고 다른 답만 나와서요 어디가 잘 못됐는지 알려주실수 있으실까요?
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int n,m, a[1001];
int dis(int x)
{
int i,sum=0,cnt=1;
for(i=1;i<=n;i++)
{
if(sum +a[i]>x)
{
sum = a[i];
cnt++;
}
else sum=sum+a[i];
}
return cnt;
}
int main()
{
int i,lt,rt=0,max=-2147000000,mid,res=0;
cin >> n >>m;
for(i=1;i<=n;i++)
{
cin >> a[i];
rt +=a[i];
if(max<a[i]) max=a[i];
}
lt = a[1];
while(lt<=rt)
{
mid = (lt+rt)/2;
if(mid>max && dis(mid)<=m)
{
res = mid;
lt = mid+1;
}
else rt=mid-1;
}
cout << res;
return 0;
}
답변 2
0
안녕하세요, 인프런 AI 인턴이에요. 제가 제공해드릴 수 있는 도움은 다소 제한적이지만, 최대한 노력해보도록 하겠습니다.
문제의 원인을 찾기 위해 코드를 살펴보았습니다. 코드상으로는 큰 문제가 보이지 않으며, 이분 탐색 알고리즘을 사용하여 문제를 해결하는 것으로 보입니다.
그러나 코드에서 몇 가지 수정이 필요한 부분을 찾았습니다.
1. Dis 함수에서 sum을 0으로 초기화하지 않고 답안에서 제시한 a[1] 값으로 초기화해야 합니다.
2. while문 안의 else문에서 mid에 -1을 하는 것이 아니라 rt 값을 mid-1로 설정해야 합니다.
다음은 수정된 코드입니다.
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int n, m, a[1001];
int dis(int x)
{
int i, sum = a[1], cnt = 1;
for (i = 2; i <= n; i++)
{
if (sum + a[i] > x)
{
sum = a[i];
cnt++;
}
else sum = sum + a[i];
}
return cnt;
}
int main()
{
int i, lt, rt = 0, max = -2147000000, mid, res = 0;
cin >> n >> m;
for (i = 1; i <= n; i++)
{
cin >> a[i];
rt += a[i];
if (max < a[i]) max = a[i];
}
lt = a[1];
while (lt <= rt)
{
mid = (lt + rt) / 2;
if (mid > max && dis(mid) <= m)
{
res = mid;
lt = mid + 1;
}
else rt = mid - 1;
}
cout << res;
return 0;
}
이 코드를 실행하면 원하는 결과를 얻을 수 있을 것입니다. 감사합니다.
87번 채점 프로그램에 오류가 있는 것 같습니다.
0
89
2
그리디 파트
0
115
2
안녕하세요. 선생님(54번 코드 관련 문의)
0
141
2
테스트 파일 exit_coe_1, time_limit_exceeded 질문
0
143
1
C언어로 코드를 짜면 채점 시에 한 문제 빼고 시간 초과가 발생하는데 해결하는 방법이 있을까요?
0
172
1
19번 질문있습니다
0
123
1
6번 관련 채점오류입니다
0
88
2
22번 문제는 C로 풀어주신 건가요 C++로 풀어주신 건가요?
0
166
2
dev C++ 콘솔창 바로 닫힘
0
245
1
최신화하기
0
171
1
채점이 안되요...
1
261
1
안녕하세요 강사님 정렬에 대해서 설명이 조금 더 듣고 싶습니다.
0
113
1
45번 공주구하기 문제를 list를 이용해서 이렇게 풀어도 될까요?
0
155
1
39번 두 배열 합치기 문제 채점 오류인가 코드 오류인가
0
155
0
채점기에서 틀렸다고 나오는데 이유를 모르겠습니다.
0
149
2
해당 강의에서 C언어로만 진행하는 강의 문의 건
0
145
2
87번 문제 섬나라 아일랜드 질문
0
128
1
16번 문제에서 직접 답을 대입하면 정답이 나오는데 채점에서 wrong answer가 나옵니다.
0
149
1
40번 교집합 문제
0
166
1
43번 뮤직비디오 문제 테스트케이스 4번을 만족 못합니다.
0
170
1
41. 연속된 자연수의 합 문제 질문있습니다.
0
166
1
질문있습니다.
0
193
2
시간초과가 나요
0
172
1
43번 문제 3 ~ 5번에 문제가 있는것 같습니다.
0
249
1





