[개념 정리] 세그먼트 트리
세그먼트 트리가 뭘까요? 배열을 [0,1,2,3,4]라고 가정합니다.init() 메서드 과정public static long init(int start, int end, int node) { if(start == end) { return tree[node] = arr[start]; } int mid = (start + end) / 2; return tree[node] = init(start, mid, node * 2) + init(mid + 1, end, node * 2 + 1);} 1. 재귀 호출을 통해서 리프 노드까지 깊이 우선 탐색을 진행합니다.후위 순회를 통해서 리프 노드에 배열의 값을 저장하고, 부모 노드로 올라가면서 자식 노드들의 합을 구하는 과정입니다. ..
2025. 3. 13.
[프로그래머스] Lv3. 봉인된 주문
풀이 방법 예를 들어, 주문서에서 "d", "e", "bb", "aa", "ae" 5개의 주문을 지웠을 때, 주문서에서 30번째 주문을 찾으려고 합니다.1~3번째 주문은 "a", "b", "c" 입니다."d"와 "e"는 삭제됐으므로 4~24번째 주문은 "f" ~ "z"입니다."aa"는 삭제됐으므로 25~27번째 주문은 "ab", "ac", "ad"입니다."ae"는 삭제됐으므로 28~30번째 주문은 "af", "ag", "ah"입니다.따라서 30번째 주문은 "ah"가 됩니다. 삭제된 주문 중 “bb”와 같이 n번째 주문보다 뒤에 위치해 있어서 n번째 주문을 찾는 데 영향을 주지 않는 주문도 존재할 수 있습니다.정수 n과 삭제된 주문들을 담은 1차원 문자열 배열 bans가 매개변수로 주어질 때, 삭제가 완료..
2025. 3. 8.