jaewonahn1234   2년 전

 동적 메모리를 배우고 11651번을 풀었는데 밑에 코드대로 하면 맞습니다. 궁금한 점은 라인 10번에서는 구조체 배열arr을 정적으로 할당했고  67번에서는 동적으로 할당했으니 이게 지금 구조체 배열 사이즈가 두 번 할당된건지 혹시 이게 맞다면 값들을 입력했을 때, 저장은 어디에 되는건지 궁금합니다.. 혼자 디버깅 돌려보려하니 너무 힘들더라구요.. 

djm03178   2년 전

제출하신 코드는 이 코드가 아닙니다. 이 코드 그대로 내면 시간 초과가 납니다.

r은 할당만 하고 사용하신 적이 없으니 말 그대로 공간만 할당된 채로 그냥 있을 뿐입니다. 제출하신 코드에서는 이렇게 하지 않았을 거라고 생각합니다.

jaewonahn1234   2년 전

아 맞습니다. 제출한 코드에서는 67번 라인이 r이 아닌 arr로 되어있습니다. 궁금한 점이 10번라인에서 이미 공간을 할당했는데 왜 또 67번에서 동적으로 할당해야하는지 이해가 잘 안됩니다 ㅠㅠ..

djm03178   2년 전

그 arr은 10번째 선언된 arr과는 이름만 같을 뿐 전혀 다른 변수입니다. 병합 정렬 자체가 원본 배열 외에 정렬 중 임시로 사용할 배열이 추가로 필요하기에 그를 위한 공간을 추가로 만들어주는 것입니다.

jaewonahn1234   2년 전

아아~ 67번 라인에 있는 arr (위에 코드에서는 r)은 값을 입력받기 위해 동적으로 할당한 공간을 의미하는거고, 10번 라인에서의 arr은 병합 정렬을 위해 만든 공간인거군요.. 변수명을 같게 해서 헷갈렸네요.. 감사합니다 많은 도움이 되었습니다. 

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