
✍️ 내 코드가 느렸던 이유: LinkedList를 배열로 바꾸고 생긴 일
·
Algorithm & Data Structures/Data Structures
🐣 시작은 코드 비교에서 최근에 백준 14002번: 가장 긴 증가하는 부분 수열 5 문제를 풀다가,다른 사람의 풀이와 내 풀이 사이에서 속도 차이가 유독 크게 나는 걸 발견했다.로직은 같았다.LIS(Longest Increasing Subsequence) 구하고, 실제 수열을 역추적해서 출력한다. 그런데 나는 이렇게 썼다:LinkedList result = new LinkedList();while (idx != -1) { result.addFirst(arr[idx]); idx = prev[idx];}반면, 다른 사람의 코드는 이렇게 배열로 처리하고 있었다:int[] result = new int[length];int pos = length - 1;while (idx != -1) { re..