master1511   7년 전

음.... 

아마 첫번째 for문이겠지만 왜 런타임 에러가 발생하는지 모르겠습니다...

mathto   7년 전

안녕하세요.

일단 배열의 크기가 너무 큽니다.

메모리 제한도 당연히 초과하구요.

아래 질문 댓글 힌트 처럼 bit flag를 이용하여 메모리를 최소한으로 사용하는 방법을 고민해 보셔야 할 것 같습니다.

입력 숫자의 갯수를 주면 좋은데 입력 끝을 알수 있는 방법이 깔끔하지는 않네요.

panda959595   7년 전

런타임에러는 i와 t의 값을 넣어주지않았는대 값에대해 연산을 하거나 값을 쓰려고해서 그런것같네요

master1511   7년 전

>>런타임에러는 i와 t의 값을 넣어주지않았는대 값에대해 연산을 하거나 값을 쓰려고해서 그런것같네요

전역변수는 무조건 0의 값이 대입되는것이 아니였나요?

제가 공부할 때 전역변수에는 0이 디폴트로 대입된다고 공부했는데 다시한번 책을 훑어봐야겠군요

kkw564   7년 전

그게 아니고 메모리 사용제한이 8mb입니다.

8 * 1024 * 1024 = 8388608byte 사용가능한데 여기서 int는 4byte니 2097152개의 배열밖에 사용할 수 없습니다.

따라서 500만개의 수를 받아내는것은 불가능하고 해쉬 함수조차 불가능합니다.

1비트를 이용하여 풀 수 있는 방식을 생각해 봐야할것같습니다.

댓글을 작성하려면 로그인해야 합니다.