강의로 돌아가기
김채은

왜 에러가 뜨는지 모르겠어요..

#include <vector>

using namespace std;

long long solution(int N) {
    long long answer = 0;
    int v[10000001]={0};
    for (int i = 2; i <= N; i++) {
        if (v[i] == 0)
            answer += i;
        for (int j = i; j <= N; j += i) {
            v[j] = 1;
        }
    }
    return answer;
}

배열대신 벡터로 하면 풀리긴 하는데 효율성에서 에러가 뜨고..
그렇다고 배열로 풀려니 자꾸 segmentation error 뜨네요ㅠㅠ왜일까요?

작성중인 코드―solution.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <vector>

using namespace std;
    int v[10000001]={0};
long long solution(int N) {

    long long answer = 0;

    for (int i = 2; i <= N; i++) {
        if (v[i] == 0)
            answer += i;
        for (int j = i; j <= N; j += i) {
            v[j] = 1;
        }
    }
    return answer;
}
  • 라용주
    배열을 크게잡으면 에러가 납니다. 라용주 2019.03.27 17:02
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.