강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Dan LEE님의 프로필 이미지
Dan LEE

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

22. 온도의 최댓값 (1차원 배열 구간합 : 제한시간 1초)

std::bad_alloc 힙메모리 부족 문제

작성

·

2K

0

int main(){
    freopen("input.txt""rt"stdin);
    int nksum = 0max = 0;
    std::vector<inttemp(n); //Create int type vector with the size of 'n', initialize it as 0
    scanf("%d %d", &n, &k);
    for(int i=0i<n; ++i){
        //Storing input values in the integer array
        scanf("%d", &temp[i]);
    }  
    //Increment the sum of first mth numbers in a vector
    for(int i=0i<k; ++i){
        sum += temp[i]
    }
    max = sum
    //Then from mth number use special formula to calculate the sum of adjacent numbers
    for(int i=ki<n; ++i){
        sum = sum + (temp[i] - temp[i-k]);
        if(sum > maxmax = sum;
    }
    printf("%d"max);

    return 0;
}
선생님이 주신 소스코드랑 변수명만 다르고 똑같이 한거같은데
이걸로 돌리면 std::bad_alloc 힙메모리가 터졌다는 에러가
뜨면서 실행이 안되더라구요...
정답코드는 잘 돌아갑니다! 혹시 제 코드랑 선생님 소스코드랑
다른점이 무엇인지 알 수 있을까요?

답변 1

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

std::vector<inttemp(n)

위 코드를 n값을 받고 난 후 해보세요. 

Dan LEE님의 프로필 이미지
Dan LEE

작성한 질문수

질문하기