• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

2-k 교수가 된 현우

23.03.09 22:33 작성 조회수 435

0

선생님 안녕하세요

2-k 강의를 듣기 전 먼저 풀어보았는데 컴파일 에러가 나옵니다.

어느 부분이 잘못되었는지 몰라서 질문 드립니다.

http://boj.kr/bfdfa1d3fcad42daae13f2d7e13b973c

답변 1

답변을 작성해보세요.

1

안녕하세요 승민님 ㅎㅎ

cnt[1000000001];

배열의 크기를 너무 크게 잡으셔서 에러가 나는 겁니다. 보통 10억짜리는 잘 안됩니다.

해당 부분 줄여서 테스팅 해보시겠어요? 이런식으로 말이죠.

(컴파일은 잘 됩니다.)

#include<bits/stdc++.h>
using namespace std;

int t, n, i, two, five, temp, cnt[100001];

int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    cin >> t;

    for(i = 1; i <= 1000000001; i++)
    {
        temp = i;
        while(temp % 2 == 0){
            temp /= 2;
            two++;
        }
        while(temp % 5 == 0){
            temp /= 5;
            five++;
        }
        cnt[i] += min(two, five);
    }

    while(t--){
        cin >> n;
        cout << cnt[n] << '\n';
    }
}

컴파일 에러가 나는데 어떤 에러인지 모를 때는 너무 많은 배열을 잡아서 그럴 때가 종종 있습니다.

 

감사합니다.