목록자료구조 (3)
시간이 NullNull
전체 코드는 맨 아래에 첨부해 두었습니다. Java 에서 기본적으로 Linked List를 제공해주기 때문에 일반적으로 시험을 제외하고는 잘 구현하지 않는 편이다. C언어에 대해서 자세히 모르지만 아마도 추축컨데 C언어에서 Linked List를 구현한다면 다음 Node를 주소값으로 가르켜 데이터를 가져올 것으로 예측된다. 하지만 Java에서는 주소값이 없기때문에 다음과 같은 방식으로 Linked List를 구현한다. 보통 Head와 Data, Tail로 구현하여 Head는 앞의 객체 Data는 현재 값 Tail은 다음 객체를 가르키도록 구현하지만 개인적인 생각으로는 Linked List에서 앞으로 가는 경우는 없기 때문에 Data와 Tail만 구현하면 된다고 생각한다. ( 필자의 개인 습관으로 Data..
Trie로 검색 혹은 이 글을 보러 오신 분은 전화번호 목록에 대해서 알 것이라고 생각하고 문제 설명은 넘어가겠습니다. 그리고 sort의 경우 본인이 구현하셔도 상관없지만 이 글에서 Point의 경우 Trie 이기에 라이브러리를 활용하였습니다. ( 그리고 sort의 경우 해주지 않으면 9112 다음에 911이 들어오면 문제가 발생하여 sort 해주었습니다. ) Trie의 개념의 경우 제가 이전에 써두었던 글을 참고하시면 더 이해가 잘 가실 것 같습니다. 글 링크 따윈 저는 상남자니까 걸어두지 않을께요 이 문제는 저번 문제와 다르게 번호가 들어왔을때 ( 예를 들어, 911 이 입력되었고 다음줄에 9112가 들어오면 ) 911 때문에 isTerminal이 true 인 상황에서 현재 자식노드의 2번 이 nul..
java 트라이 알고리즘, Trie 알고리즘 등등으로 검색해서 오신 분들은 귀찮더라도 개념 자체는 다른 분들이 친절하게 그림까지 다 그려가면서 설명을 잘 해놓았기 때문에 다른 분들 글과 그림을 보면서 설명을 듣고 오시길 바랍니다! 사실 저도 엄청 검색을 해보고 많은 글을 보고 했었는데 먼가 진짜 쉽게 짜놓은 트라이 알고리즘은 없어서 이 새벽에 미친 듯이 고민해가며 트라이를 짜왔습니다. 문제는 SW Expert에 문자열 교집합이라는 문제를 참고로 하였고 사실 이 문제는 트라이로 풀면 메모리가 오버되어 절대로 풀 수가 없습니다. ㅎ.... 이거 때문에 왜 런타임 에러일까 하면서 한참을 고민했네요 B형을 준비하시는 분들은 LinkedList를 구현하는 것을 먼저 보고 오시길 추천드리며 LinkedList를 아..