이번에 "자바로 배우는 핵심 자료구조와 알고리즘, 기술 면접에 필요한 실용주의 자료구조와 알고리즘" 이라는 책을 ebook으로 사서 공부를 시작하고자 한다. 계속 일을 할 수록 조금 더 효율적인, 간결한 코딩을 추구하게 되니 자연스럽게 자료구조와 알고리즘에 대해서 공
앞에서 List 인터페이스 구현 클래스인 ArrayList와 LinkedList는 응용프로그램에 따라 더 유용하게 사용할 수 있다고 말씀드렸습니다. 대충 두개다 실행해 보고 시간을 측정해서 어느 클래스가 더 좋은지 판별할 수도 있지만 (이러한 접근법을 Profilin
앞에서 예를 들어 설명한 선택정렬! 이차 알고리즘이라고 했었는데, 상수 선형 이차 이러한 알고리즘의 효율을 표기해주는 표기법이 있습니다. 바로 빅O 표기법입니다. 빅O 표기법을 설명해 드리기 전에 점근 표기법이라는 것을 알고 가야합니다. 점근 표기법은 빅오(Big-O)
ArrayList의 add 메소드를 구현할 때 System.arraycopy를 사용해서 배열을 복사해서 array.length만큼 자릅니다. 실습코드를 구성한 코드는 아래와 같습니다.생각해보면 지금까지 자바를 공부하면서 배열을 복사해본 적은 없었던 것 같습니다. 처음에
어제 ArrayList의 add메서드를 공부를 했는데 이제 이 메서드를 알고리즘적 측면에서 접근을 해보고자 합니다. 먼저 어제 보았던 add메서드 입니다.어제 배열공간이 부족하면 배열복사가 일어난다고 설명을 드렸습니다. 그렇다면 배열에 아직 사용할 공간이 있다면 add
비교전에 LinkedList를 한번 정리하고 넘어가겠습니다.진짜 그림이 이해하는데 최고인 것 같습니다. 진짜 왜 이름이 Linked인지 확실하게 알게 해주는 객체 다이어 그램입니다. ListNode들이 계속 연결되어 있는 구조이고 이번에 메서드를 구현하면서 중요하게 여
👉오늘의 정리(트리순회) 검색엔진 : 검색엔진(web search engine) 정말 많이 들어보고 사용도 해왔었는데 파이썬으로 간단히 크롤링을 할 때 자료수집에 좋네 라고만 생각하고 연관을 짓지는 못했었습니다. 책을 읽으면서 머리 속에 무분별하게 퍼져있는 잡지식들
Graph란❓알고리즘 공부를 하면서 그래프(Graph) 를 많이 접하고 있습니다. 설명드리는 그래프는 학창시절 수학시간 함수들의 그래프랑은 조금 의미가 다른 자료구조의 그래프입니다. 자료구조의 그래프는 단순히 노드(N, node)와 그 노드를 연결하는 간선(E, edg
대부분의 개발자들이 처음 배우는 알고리즘이라는 것이 아마 정렬 알고리즘일 것입니다. 데이터를 왜 정렬해야 할까요? 실생활에 예를 들어 내 방에 책 한권을 찾는 것은 몇분 걸리지 않습니다만(책이 몇권없음..) 도서관에서 책을 찾는다면 번호가 매긴 상태거나 제목, 구매일