ps 팁4 [ps 팁] 재귀는 마치 누군가가 종이에 숫자를 쓰고, 그 종이를 다음 사람에게 넘겨주는 방식과 같다 아래의 코드를 보면 DFS여서 매번 재귀할 때마다 함수 첫 번째 줄부터 다시 시작하는데저렇게 int cnt = 1;해 버리면 카운트를 하다가도 계속 1로 초기화되는 거 아닌가..? 처음엔 그렇게 보일 수도 있지만, 재귀 함수에서는 각 함수 호출마다 자신만의 지역변수 스코프(scope)를 가지기 때문에int cnt = 1;이거는 그 호출된 함수 하나에만 국한되는 초기화다private static int dfs(int V) { visited[V] = true; int cnt = 1; // 자기 자신 포함 for (int next : graph[V]) { if (!visited[next]) { cnt += dfs(next); // 재귀 호출 결과 누적 .. 2025. 3. 25. [ps 팁] 이진 탐색 트리(BST) 순회에 관한 놀라운 사실 이진 탐색 트리(BST)에서 중위 순회를 하면 오름차순으로 정렬된 결과를 얻을 수 있다.....ㅎㅎ 2024. 10. 27. [ps java] PriorityQueue() 사용법 ps에서 우선순위 큐는 최단거리 알고리즘(다익스트라 알고리즘)에 많이 사용되며, 구현 문제에도 사용될 수 있다최댓값 혹은 최솟값 꺼내서 처리한 뒤 다시 넣고.. 이렇게 반복하는 종류의 문제들에서 잘 쓰인다 ㅇPriorityQueue(): 입력 요소에 우선순위를 부여e.g. 입력[3, 1, 5, 2, 4] -> 출력[1, 2, 3, 4, 5] 기본 설정이 최소 힙(min-heap)으로 되어있기 때문에 오름차순으로 출력된다import java.util.PriorityQueue;public class PriorityQueueExample { public static void main(String[] args) { PriorityQueue pq = new PriorityQueue(); .. 2024. 10. 27. [ps 팁] 문제의 입력 제한값으로 알고리즘 유추하기 https://claremont.tistory.com/entry/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-ep1-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EA%B8%B0%EB%B3%B8-%EC%A7%80%EC%8B%9D%EB%93%A4 [자료구조] ep1) 자료구조 기본 지식들ㅇ다차원 배열- 3차원 배열 - 4차원 배열 ㅇ빅오(Big O) 표기법: 연산의 횟수를 대략적(점근적)으로 표기"최악의 case 실행시간을 고려한다" [예시](1) 7n-2: O(n)(2) 3n^3 + 20n^2 + 5: O(n^3)(3) 3log(n) + logclaremont.tistory.com 일반적으로 연산을 1억(10^8) 번 하면 1초다📌 어떻게 나온 계산인가.. 2024. 10. 23. 이전 1 다음