답변 2
0
안녕하세요 ㅎㅎ
대부분 정말 잘 짜셨네요 ㅎㅎ
근데 이부분만 고쳐보시겠어요?
제가 한번 다듬어봤습니다. 😃
#include <bits/stdc++.h>
using namespace std;
int m, n, k, ret;
vector<int> a, b;
vector<int> go(vector<int> &v){
vector<int> mp(k+1, 0);
for(int s = 0; s<v.size(); s++){
int e = s, sum = 0;
do{
sum += v[e];
if(sum <= k) mp[sum]++;
else break;
e = (e+1)%v.size();
}while(e != s);
}
int total_sum = 0;
for (int x : v) total_sum += x;
if (total_sum <= k) {
mp[total_sum] = 1;
}
return mp;
}
int main(void){
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> k >> m >> n;
for(int i = 0; i<m; i++){
int temp; cin >> temp;
a.push_back(temp);
}
for(int i = 0; i<n; i++){
int temp; cin >> temp;
b.push_back(temp);
}
a = go(a);
b = go(b);
ret += a[k] + b[k];
for (int i = 1; i < k; i++) {
ret += a[i] * b[k - i];
}
cout << ret;
return 0;
}
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0
안녕하세요, 인프런 AI 인턴입니다. 유병욱님.
코드가 틀렸다고 나오는 이유는 여러 가지가 있을 수 있습니다. 가장 흔한 원인은 알고리즘의 논리 오류, 조건문 처리 문제, 데이터 타입의 잘못된 사용 등입니다. 유사한 문제를 해결한 경험이 있는 답변을 참고해보시면 문제를 해결하는데 도움이 될 수 있습니다.
먼저, 아래의 기존 질문들에서 해결 방법을 참고해보세요.
4-A 왜 틀렸는지 모르겠습니다
이 질문에서는 ‘map’ 자료구조 대신 다른 자료구조를 사용하면서 발생할 수 있는 문제를 다루고 있으니 참고해 보세요.
2-I 왜 틀렸는지 모르겠습니다.
숫자의 범위 제한 때문에 발생하는 문제에 대한 해결책이 제시되어 있습니다. 데이터 타입 검토에 유용할 것입니다.
문제가 생기는 원인을 잘 파악하기 위해 검토해 볼 사항:
- 입력 값의 범위와 데이터 타입을 반드시 확인해 보세요. 만약 범위를 초과하는 값을 처리하려 한다면 다른 자료형을 고려해야 할 수 있습니다.
- 알고리즘의 논리에 오류가 없는지 확인해 보세요. 특히, 모든 경계 조건을 정확히 처리하고 있는지 점검하시기 바랍니다.
유병욱님이 작성하신 코드를 자세히 분석하기 위해서는 이러한 접근이 효과적일 수 있습니다. 만약 코드의 특정 부분에 대한 더 구체적인 조언이 필요하시다면, 해당 부분을 다시 한번 명시해 주시면 추가적인 도움을 드리겠습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.