• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

안녕하세요 질문드립니다.!

20.08.14 07:19 작성 조회수 124

0

제가 작성한 코드에서 계속 wrong_answer가 나와 강의를 보고 코드를 수정해서 작성했습니다. 테스트를 했는데 전체적으로 너무 작은 값이 나옵니다. 제가 놓치고 있는 부분이 있는 지 확인 부탁드립니다.! 감사합니다!

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
	int i,j,h,w,sum=0,max=0,gh,gw,k,q;
	scanf("%d %d",&h,&w);
	vector<vector<int> > a(h+1,vector<int>(w+1,0));
	for(i=1;i<=h;i++){
		for(j=1;j<=w;j++){
			scanf("%d",&a[i][j]);
		}
	}
	scanf("%d %d",&gh,&gw);
	for(i=1;i<=h-gh+1;i++){
		for(j=1;j<=w-gw+1;j++){
			sum=0;
			for(k=i;k<i+gh;k++){
				for(q=j;q<j+gh;q++){
					sum=sum+a[k][q];
				}
			}
			if(max<sum)max=sum;	
		}
	}
	
	printf("%d",max);
	
	
	return 0;
}

답변 2

·

답변을 작성해보세요.

0

cu ryu님의 프로필

cu ryu

질문자

2020.08.16

아!! 이제서야 보이네요 ㅜㅠ 답변 감사드립니다!!

0

       for(i=1;i<=h-gh+1;i++){
		for(j=1;j<=w-gw+1;j++){
			sum=0;
			for(k=i;k<i+gh;k++){
				for(q=j;q<j+gh;q++){
					sum=sum+a[k][q];
				}
			}
			if(max<sum)max=sum;	
		}
	}

위 코드에서 제일 안쪽 for문인 q for문에서 단순 실수가 있습니다.