[강의정리] [연결리스트] 실전 알고리즘 0x04 정리
바킹독의 실전 알고리즘 0x04 강의 정리.
연결리스트는 어떤 문제에 쓰일까?
- 연결 리스트가 쓰이는 문제는 크게 응용해서 낼만한게 없고 원소들을 돌아다니면서 이동하다가 삭제나 삽입이 필요한 문제들
- 연습문제들
https://jjpearl.tistory.com/52
[백준 - 1406번] 에디터
문제 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는
jjpearl.tistory.com
- 손코딩 문제 1
원형 연결 리스트 내의 임의의 노드 하나가 주어졌을 때 해당 List의 길이를 효율적으로 구하는 방법?
-> 효율적 = 생각한 풀이의 공간복잡도와 시간복잡도를 생각해봐라
답: 시작노드를 따로 저장해뒀다가 동일한 노드가 나올 때 까지 계속 다음 노드로 가면 됨.
-> 공간복잡도 O(1), 시간복잡도 O(N)
- 손코딩 문제 2
중간에 만나는 두 연결리스트의 시작점들이 주어졌을 때 만나는 지점을 구하는 방법?
답: 두 시작점 각각에 대해 끝까지 진행시켜서 각각의 길이를 구한다.
그 후 다시 두 시작점으로 돌아와 더 긴족을 둘의 차이만큼 앞으로 이동시켜 놓으면
둘을 동시에 한칸씩 전진시켰을 때 만나는 지점을 구할 수 있다.
-> 공간복잡도 O(1), 시간복잡도 O(A+B)
https://jjpearl.tistory.com/53?category=1033721
[백준 - 5397번] 키로거
문제 창영이는 강산이의 비밀번호를 훔치기 위해서 강산이가 사용하는 컴퓨터에 키로거를 설치했다. 며칠을 기다린 끝에 창영이는 강산이가 비밀번호 창에 입력하는 글자를 얻어냈다. 키로거
jjpearl.tistory.com
https://jjpearl.tistory.com/54?category=1033721
[백준 - 1158번] 요세푸스 문제
문제 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람
jjpearl.tistory.com