TIL/2022 80

220204

할 일 알고리즘 블로그 글 읽기(~TimSort) 백준 강의 문제 풀기(~수 이어쓰기) 한 일 오늘은 알고리즘 정리된 글을 모두 다 읽었다. TimSort는 이진 삽입 정렬 + 병합 정렬로 구성된다는건 알게됐는데 구현 내용은 너무 어려워서 다음에 다시 보기로 했다.. 그 외에 병합 정렬, 퀵 정렬, 이진 삽입 정렬에 대해서 학습했는데 여러가지 구현 방식을 알게돼서 좋은 시간이었다. 위의 정렬 방식도 완벽하게 이해한건 아니니까 여러번 봐두자~! 그리고 수 이어쓰기 문제까지 풀어보았다. 강의 문제가 꽤나 많지만 SW 역량테스트 문제랑도 거의 겹치니까 그냥 꾸준히 다 풀어본다는 생각으로 풀면 좋을듯하다.

TIL/2022 2022.02.05

220203

할 일 자료구조 블로그 글 읽기(~LinkedHashSet) 한 일 오늘은 먼저 LinkedHashSet까지 구현된 글을 봤다. Hash를 이용하는 HashSet, Hash와 Link를 이용한 LinkedHashSet에 대해서 학습했는데 해시 충돌에는 크게 Open Addressing, Separate Chaining가 있다고 한다. Open Addressing은 해시 충돌시 빈 인덱스를 찾아서 채우는 방식이고 Separate Chaining은 연결리스트 형식으로 충돌 노드 다음으로 연결하는 방식이다. 자바에서는 Separate Chaining 방식을 채택하고 있다고 한다. HashSet은 key(=value), hash, next(다음 노드)로 데이터를 저장하고 LinkedHashSet은 key(=va..

TIL/2022 2022.02.03

220202

할 일 자료구조 블로그 글 읽기(~Priority Queue) 한 일 오늘은 Priority Queue까지 구현된 글을 봤다. 클래스에서 기본적으로 붙여서 사용하는 제네릭과는 다르게 별도로 독립적으로 메서드에 제네릭을 사용하는 부분이 꽤 어려워서 관련 글도 좀 봤다. 글을 봐도 좀 어렵긴하다.. 그래도 컬렉션들을 직접 구현해보는 글을 보는게 자료구조 이해 관점에서 도움이 많이 되는 것 같긴하다. 내일은 Set 쪽 보고나서 알고리즘 쪽 글 보면서 정리 하자!

TIL/2022 2022.02.02

220201

할 일 자료구조 블로그 글 읽기(~Queue) 한 일 알고리즘 쪽을 보다가 자료구조 쪽이 선행되면 좋을 것 같아서 그 쪽을 먼저 보았다. 컬렉션들을 직접 구현해보는 내용이었는데, 이쪽도 내용이 좋아서 시간을 좀 투자해보기로 했다. ArrayList, SinglyLinkedList, java.util에서 제공하는 LinkedList인 DoublyLineked, Stack 쪽 구현 글을 봤다. Stack은 Vector를 상속받기에 ArrayList와 메서드 이름만 다를 뿐 구현 내용은 비슷했고 ArrayList를 상속받아서 Stack을 구현하는 부분도 보았다. Queue는 front, rear를 사용하여 삽입,삭제의 효율성을 증대시키는 부분을 보았다. 내일은 Deque, Heap, Priority Queue..

TIL/2022 2022.02.01

220131

할 일 알고리즘 블로그 글 읽기 한 일 글이 잘 정리 된 블로그가 있어서 알고리즘 파트 쪽을 보았다. 알고리즘 쪽은 계수 정렬, 팀 정렬, 병합 정렬, 셸 정렬, 힙 정렬에 대한 글이 있었다. 계수 정렬은 대강은 알고 가끔 문제풀 때 사용했었는데, counting 배열에 누적합을 이용해서 더한 후 또 다른 배열에 정렬된 값을 저장할 수 있다는 것을 알게됐다. 그리고 삽입정렬의 단점(타겟 넘버가 작을 경우 작을 숫자를 찾을 때 까지 계속 원소끼리 비교)을 개선한 셸 정렬을 알게됐다. 셸정렬은 적정 간격을 설정하여 정렬하는 것이다.

TIL/2022 2022.01.31