놀랍게도 지역 변수 선언만 바깥으로 옮기면 똑같은 로직이 틀렸습니다 => 맞았습니다 로 바뀌네요.
틀렸습니다 : https://www.acmicpc.net/source...
맞았습니다 : https://www.acmicpc.net/source...
15501번 - 부당한 퍼즐
놀랍게도 지역 변수 선언만 바깥으로 옮기면 똑같은 로직이 틀렸습니다 => 맞았습니다 로 바뀌네요.
틀렸습니다 : https://www.acmicpc.net/source...
맞았습니다 : https://www.acmicpc.net/source...
글쎄요. 예측할 수 없는 상황이 발생했는데 부족하나마 제가 채점한 경험에 있던 말씀을 드리겠습니다.
제가 d로 큰 사이즈의 동적 배열을 만들 때도 함수안의 지역변수로 선언하면 메모리 fault 나는 경우가 있었습니다.
대략 사이즈가 1000000크기의 int배열이었던 거같고 지금과 비슷한 상황이였습니다.
다른 큐나 유사한 자료구조도 함수안의 지역변수로 선언하면 메모리 fault가 났던 경험이 있습니다.
c나 c++와 메모리 구조가 많이 다른 것같습니다.
전역 공간도 c/c++는 상당히 크게 잡아서 배열을 선언할 수 있는데 d언어는 16M 한계로 알고 있습니다.
그래서 아주 큰 배열을 선언할 때는 저의 경우 동적배열의 참조는 전역공간에 선언하고 객체할당은
함수안에서 필요한 만큼 크게 선언했었습니다.
조금이나마 도움이 되어 드렸으면 합니다만 제 지식이 일천하여 여기까지 줄입니다.
댓글을 작성하려면 로그인해야 합니다.
jwvg0425 5년 전 1
d 언어로 이 문제를 풀어보려고 했는데, 어떻게 해도 이해할 수 없는 런타임 에러와 틀렸습니다가 발생합니다.
코드는 아래 첨부했는데, 완전 동일한 로직을 c++로 작성할 경우 잘 통과되고(입력부 제외하고 복사붙여넣기했습니다 - https://www.acmicpc.net/source... ), d로는 18% 가량에서 틀렸습니다가 나오는데 어떻게 코드를 바꿔도 통과가 안 됩니다. 채점 환경과 동일한 컴파일러를 다운받고, 공개된 테스트 데이터 ( https://github.com/jwvg0425/So... )로 직접 테스트해볼 경우 모든 테스트 데이터에 대해 올바른 답을 출력합니다. 확인 부탁드립니다.