new로 할당된 메모리는 초기화가 되지 않습니다. next와 finish 모두에 어떤 값이 들어있을지 전혀 모르는 상태가 됩니다.
5052번 - 전화번호 목록
Number[i][10]은 Number[i+1][0]의 주소와 같아지는데, 그러면 i+1번째에 삽입된 문자열은 i번째 문자열의 널 문자를 덮어쓰게 됩니다. 그러면 i번째 문자열을 삽입/검색할 때는 마치 i번째 문자열의 뒤에 i+1번째 문자열을 이어붙인 걸 삽입/검색하는 것과 같아지는데, 이걸로 틀리게 만들 수 있는 반례가 없는 것 같습니다.
틀렸습니다를 받은 코드의 경우에는 삽입할 때의 문자열은 10글자에서 딱 끊어진 상태로 들어가는데 검색할 때는 더 긴 문자열을 찾으려고 하는 것처럼 되어 검색 과정에서 잘못된 동작을 일으키기 때문인 것 같습니다.
답이 틀리지는 않은데, 메모리 초과가 날 수 있는 데이터를 만들었습니다.
댓글을 작성하려면 로그인해야 합니다.
gudrkrsla 4년 전
모든 문자열을 다 받은 다음 하나하나 insert 해주는 식으로 풀이해서 맞았습니다.
그래서 반복을 조금이라도 줄이고자, 문자열을 받으면서 그 즉시 insert해주는 식으로 바꾸었는데 틀렸습니다를 받았습니다.
뭐가 문제일까요?? 첨부코드는 틀렸을 때 코드입니다.