kyj030823   1년 전

예시의 문제는 잘 뜨는데 어떤 반례에서 코드가 문제가 있는지 알고 싶습니다.

hkhkhk5452   1년 전

6,7,8,9 라인에 큰 배열들을 선언하였는데

지역 변수로 선언하면 stack에 변수가 할당됩니다.(stack-여유-heap-data-code)

그런데 보통 stack의 최대 크기는 1MB 정도로 정해놓습니다.

최대 크기를 넘어가면 stackoverflow가 일어나서 프로그램이 정상적으로 동작하지 않습니다.

큰 배열을 선언한다면 전역 변수로 선언하면 해결됩니다.

hkhkhk5452   1년 전

20010*52*2=2081040 = 2*10^6 > 1MB = 1*10^6

kyj030823   1년 전

감사합니다! 근데 전역변수로 바꿔도 틀렸다고 뜨네요 ㅠㅠ

hkhkhk5452   1년 전

@kyj030823

28라인을 보시면 strcmp의 반환값이 1과 비교 연산하고 있습니다.

window 운영체제에서는 strcmp의 값이 1,0,-1 중 하나이지만

linux 계열에서는 아스키 코드의 차이를 반환합니다.

따라서 1인지 검사하는게 아니라 양수인지 검사해야합니다.

(백준의 채점서버 : Ubuntu 16.04.7 LTS) - 우분투는 리눅스 계열입니다.


참고자료:

https://dojang.io/mod/page/vie...

kyj030823   1년 전

와 감사합니다! 이건 부분은 전혀 몰랐네요. 덕분에 해결됐어요!

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