기본 구현 class Trie { public static class Node { private boolean isEnd; private final Node[] next; public Node(int size) { this.isEnd = false; this.next = new Node[size]; } public Node next(int v) { return this.next[v]; } public boolean isEnd() { return isEnd; } } private final char start; private final int size; private final Node root; public Trie(char start, char end) { this.start = start; this...
기본 구현 class Dijkstra { public static final int INF = 987654321; public static class Pair implements Comparable { private final int x; private final int y; public Pair(int x, int y) { this.x = x; this.y = y; } public int getX() { return x; } public int getY() { return y; } @Override public int compareTo(Pair o) { if (this.x == o.x) { return this.y - o.y; } return this.x - o.x; } } private Dijkstr..
최대 공약수(gcd) - 반복 public int gcd(int a, int b) { while (b != 0) { int r = a % b; a = b; b = r; } return a; } 최대 공약수(gcd) - BigInteger.gcd public int gcd(int a, int b) { return BigInteger.valueOf(a).gcd(BigInteger.valueOf(b)).intValue(); } 최소 공배수(lcm) public int lcm(int a, int b) { return (a * (b / gcd(a,b))); }
기본적인 구현 class Dsu { private final int[] parent; public Dsu(int size) { this.parent = new int[size]; for (int i = 0; i < size; i++) { parent[i] = i; } } public int find(int x) { if (parent[x] == x) { return x; } parent[x] = find(parent[x]); return parent[x]; } public boolean union(int x, int y) { int parentX = find(x); int parentY = find(y); if (parentX == parentY) { return false; } parent[parent..
- Total
- Today
- Yesterday
- 연결리스트
- 쓰레드
- 회고
- dfs
- 구현
- 프로그래머스
- Java
- set
- BFS
- 알고리즘
- dp
- 오늘의집
- JPA
- 코딩인터뷰
- 비트연산
- dsu
- 코드 스니펫
- 스택
- 문자열
- sql
- 스트림
- TDD
- 카카오
- 탐욕법
- 정렬
- 해쉬
- k8s
- Uber
- 우선순위큐
- kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |