알고리즘 풀이(358)
-
[알고리즘] 파라메트릭 서치 꿀팁
parametric search를 할 때 왼쪽 영역이 T, 오른쪽 영역이 F라면 left
2024.03.14 -
[알고리즘] 국가행정
import java.util.Comparator; import java.util.PriorityQueue; import java.util.Queue; class UserSolution { static int[] population; static Queue distances; static int[] distance; static int[] initAccSum; static Node root; static class Node { int start; int end; int sum; Node left; Node right; public Node(int start, int end, int sum) { super(); this.start = start; this.end = end; this.sum = sum; }..
2024.03.13 -
[알고리즘] 국가행정
import java.util.Comparator; import java.util.PriorityQueue; import java.util.Queue; class UserSolution { static int[] population; static Queue distances; static int[] distance; static int[] initAccSum; static Node root; static class Node { int start; int end; int sum; Node left; Node right; public Node(int start, int end, int sum) { super(); this.start = start; this.end = end; this.sum = sum; }..
2024.03.13 -
[알고리즘] SW B형 문제 풀이에 있어서의 나의 문제점과 해결방안
지금 문제를 풀 때의 문제는 디버깅하는데 애를 먹고 있다는 점이다. 디버깅이 힘든 이유를 생각해보면 다음과 같다. 1. 코드가 길어진다. 코드가 길어지기 때문에 어느 한 부분에서 난 오류를 찾아내기가 더 힘들어진다. 2. 중복 코드가 있다. 중복 코드가 있기 때문에 하나를 바꾸면 똑같은 코드도 모두 바꿔주어야 하는데 여기서 실수를 할 가능성이 생긴다. 3. 주석이 없다. 코드가 길고 복잡한데 이게 뭐 하는지 기억력에 한계가 있기 때문에 디버깅을 하는 속도가 지연될 수 밖에 없다. 4. 어디서부터 시작해야할지 모르겠다. 틀린 이유를 아예 모르는 것이다. 경험상 이는 논리가 틀렸거나 코드에 오타가 있거나 문제 조건을 빼먹었거나 구현을 잘못했거나 중 하나이었다. 5. print로 찍어보기가 어렵다. 객체의 크..
2024.03.10 -
[알고리즘] PriorityQueue
조심해야할 점: peek이 O(1)이지 poll이 O(1)인 것이 아니다!!! add(E e): O(logn) clear: O(n) contains: O(n) offer(E e): O(logn) peek: O(1) poll: O(logn) remove: O(n + logn) size: O(1)
2024.03.10 -
[알고리즘] TreeMap
특징: redblack tree 기반 ceilingEntry: O(logn) ceilingKey: O(logn) clear: O(n) containsKey: O(logn) containsValue: O(logn) entrySet: O(n) firstEntry: O(logn) firstKey: O(logn) floorEntry: O(logn) floorKey: O(logn) get: O(logn) higherEntry: O(logn) higherKey: O(logn) keySet: O(n) lastEntry: O(logn) lastKey: O(logn) lowerEntry: O(logn) lowerKey: O(logn) pollFirstEntry: O(logn) pollLastEntry: O(logn) p..
2024.03.10