[C++] 백준 1292 : 쉽게 푸는 문제

Kim Nahyeong·2022년 3월 10일
0

백준

목록 보기
95/157

#include <iostream>

int A, B;
int num[10000] = {0}; // 1001로 배열 크기를 줬을때 틀렸습니다.
int n = 1;
int sum = 0;
int main(int argc, char** argv){
  scanf("%d %d", &A, &B);

  for(int i = 1; i <= 1000; i++){
    for(int j = 0; j < n; j++){
      num[i++] = n;
    }
    i--;
    n++;
  }

  for(int i=A; i<=B; i++){
    sum += num[i];
  }

  printf("%d", sum);

  return 0;
}

메모리를 조심해야한다. num의 크기를 1001로 만들었는데 오류가 발생했다. 내 생각에는 num[i++] 때문에 1001번째 번지에 값을 넣고 i++로 overflow가 발생해 메모리를 침범한 모양. i++를 쓸 때는 조심하자.

0개의 댓글