dreamian   6년 전

일단 문제는 해결했습니다.

제시된 소스코드 중에 queue와 chk 배열의 크기를 '101'이 아닌 '1001'로 잡아주니 해결되었습니다.

그런데 사실 문제에서 제시된 최대 크기는 100개였습니다....

홈페이지에 있는 채점 방식에서 런타임 에러가 나는 경우를 찾아보니, segmentation fault와 같은 것 때문에 난다고 되어 있어,

시험 삼아 직접 100개를 입력해보니 segmentation fault가 났고, 50개를 입력해보니 stack smashing ~~~ 에러가 났습니다.

배열의 크기를 크게 늘려주니 에러가 없어졌구요..

원인이 무엇인지 궁금합니다!

chogahui05   6년 전

최대 크기는 100이 맞는데

dream님이 구현하신 걸로는 101개로는 턱없이 부족하겠죠. 당장..

1 2 3 4 ... 100

이 온다고 생각해 보세요.


큐를 구현하실 때 선형큐 비슷하게 구현하신 거 같은데.

당연히 이 경우에는 삭제 횟수 + 삽입 횟수 정도만치의 공간이 필요하겠네요..


chogahui05   6년 전

근데 그건 그렇다 치고.. 코드를 보긴 봤는데..

이런 큐 구현하신 게 맞지요?


1 2 3 . . .

. 2 3  . . .

. . 3 . . .

. . 3 4 . .

. . 3 4 5 .

. . 3 4 5 6

. . 3 4 5 6 7

. . . 4 5 6 7

이런 큐를 제가 저런 코드로 구현을 해 본 적이 없는지라..

dreamian   6년 전

큐를 구현한 게 맞습니다.

글을 보니 확실히 이해가 됐습니다.

코드가 너무 난잡해서...

답변 감사합니다!

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