10개의 댓글이 있습니다.
-
-
sven -
@wookayin 답변 감사합니다. 알고리즘은 맞는 것 같은데, 말씀하신 부분에서 코딩의 미숙함 때문에 memory limit exceeded가 발생하는 것 같습니다.
double **A; 꼴의 경우,
for(int i=0; i<N; i++)
delete [] A[i]
delete [] A
를 이용하여 delete를 시도했는데, 아예 실행 결과가 틀어져버리는군요.
어디서 어떤 문제가 생긴 것인지 잘 모르겠습니다.
조언 부탁드립니다.
(코드는 수정본으로 바꾸었습니다.)@JongMan 답변 감사합니다. 그렇게도 시도해봐야겠습니다.
12년 전 link
-
-
-
sven -
@JongMan Xcode 내부 메모리 누수 체크 기능이 있어, 해결하였습니다. 와중에 질문이 또 생겼는데요,
1. new 명령어는 초기화를 보장하지 않나요? 위의 코드 (정답이 뜬 수정본으로 바꿨습니다.) 에서 추가적으로 초기화해준 부분을 지우면 쓰레기값이 나타납니다. 아니면 메모리 관리가 아직도 제대로 되지 않은 것인지...
2. ps에서, vector 배열의 장단점은 어떤가요? 저는 성능 차이가 TLE에 영향을 줄 정도는 아니라고 생각하여 코딩이 단순하고 오류 발생 가능성이 적은 쪽을 택하는게 좋으리라 생각합니다. 그리고 지금과 같이 메모리에 대한 접근이 필요한 경우는 vector 가 훨씬 간단할 것 같습니다. 그런데 여기 알고스팟의 다른 분들의 코드나 주변 정올 출신 사람들의 코드를 보면 메모리를 다루더라도 항상 배열만 쓰시더라구요. 반대로 탑코더의 코더들의 경우는 vector 를 많이 쓰시는 것 같구요.
12년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
sven
DEATH
N^2 크기의 행렬을 이용하여 X에 대한 분할정복을 이용하여 해결하였는데, memory limit exceeded가 뜨는군요.
제 컴퓨터에서는 (맥 xcode를 사용하고 있습니다) 최고 크기의 데이터를 넣어도 잘 돌아가서, 어느 부분에서 문제가 있는지를 가늠하지 못하겠습니다.
어떤 부분을 어떻게 개선하면 좋을지 조언 부탁드립니다.
12년 전