본문 바로가기

세그먼트 트리5

[백준] 2357번 - 최솟값과 최댓값 [Java] https://www.acmicpc.net/problem/2357 1.  아이디어 구간에 대한 최솟값과 최댓값을 반복적으로 구해야한다는 점에서 세그먼트 트리를 활용하면 간단하게 해결할 수 있다.2. 문제풀이 세그먼트 트리 클래스를 구현한 후 입력 값을 기반으로 세그먼트 트리를 생성해서 반복문으로 쿼리를 처리하는 방식으로 구현했다.세그먼트 트리는 최솟값과 최댓값을 모두 처리하기 위해 minTree와 maxTree를 생성해서 각각 초기화했고 쿼리에 대해 minTree 쿼리와 maxTree 쿼리를 각각 처리해서 StringBuilder로 합쳐서 반환하는 방식으로 구현했다. 쿼리에서 구간이 벗어나는 경우 포함하지 않는다는 의미로 minTree는 Integer.MAX_VALUE를, maxTree는 Interger.. 2025. 1. 14.
[백준] 10868번 - 최솟값 [Java] https://www.acmicpc.net/problem/10868 1.  아이디어 구간에 대한 최솟값을 반복적으로 구해야한다는 점에서 세그먼트 트리를 활용하면 간단하게 해결할 수 있다.2. 문제풀이 세그먼트 트리 클래스를 구현한 후 입력 값을 기반으로 세그먼트 트리를 생성해서 반복문으로 쿼리를 처리하는 방식으로 구현했다.세그먼트 트리는 구간의 최솟값을 구해야하므로 자식 노드 중 최솟값을 저장하도록 초기화 및 쿼리를 짰다. 쿼리에서 구간이 벗어나는 경우 포함하지 않는다는 의미로 Integer.MAX_VALUE를 반환해서 한다.3. 코드 import java.io.*;import java.util.*;public class Main { private static class SegmentTree { .. 2025. 1. 14.
[백준] 11505번 - 구간 곱 구하기 [Java] https://www.acmicpc.net/problem/11505 1.  아이디어 구간에 대한 곱을 반복적으로 구해야하고 특정 위치의 값을 변경하는 상황도 있다는 점에서 세그먼트 트리를 활용하면 간단하게 해결할 수 있다.2. 문제풀이 세그먼트 트리 클래스를 구현한 후 입력 값을 기반으로 세그먼트 트리를 생성해서 반복문으로 쿼리를 처리하는 방식으로 구현했다.세그먼트 트리는 구간 곱을 구해야하므로 자식 노드의 곱을 저장하도록 초기화 및 쿼리를 짰다. 쿼리에서 구간이 벗어나는 경우 포함하지 않는다는 의미로 1을 반환해서 한다.3. 코드 import java.io.*;import java.util.*;public class Main { private static class SegmentTree { .. 2025. 1. 14.
[백준] 1275번 - 커피숍2 [Java] https://www.acmicpc.net/problem/1275 1.  아이디어 구간에 대한 합을 구한 뒤 값을 변경하는 과정을 반복한다는 점에서 세그먼트 트리로 해결할 수 있다.2. 문제풀이 세그먼트 트리 클래스를 구현한 후 입력 값을 기반으로 세그먼트 트리를 생성해서 반복문으로 쿼리를 처리하는 방식으로 구현했다.세그먼트 트리는 구간 합을 구해야하므로 자식 노드의 합을 저장하도록 초기화 및 쿼리를 짰다. 쿼리에서 구간이 벗어나는 경우 포함하지 않는다는 의미로 0을 반환해서 한다.3. 코드 import java.io.*;import java.util.*;public class Main { private static class SegmentTree { private final int N.. 2025. 1. 14.
[백준] 2042번 - 구간 합 구하기 [Java] https://www.acmicpc.net/problem/2042 1.  아이디어 구간에 대한 합을 반복적으로 구해야하고 특정 위치의 값을 변경하는 상황도 있다는 점에서 세그먼트 트리를 활용하면 간단하게 해결할 수 있다.2. 문제풀이 세그먼트 트리 클래스를 구현한 후 입력 값을 기반으로 세그먼트 트리를 생성해서 반복문으로 쿼리를 처리하는 방식으로 구현했다.세그먼트 트리는 구간 합을 구해야하므로 자식 노드의 합을 저장하도록 초기화 및 쿼리를 짰다. 쿼리에서 구간이 벗어나는 경우 포함하지 않는다는 의미로 0을 반환해서 한다.3. 코드 import java.io.*;import java.util.*;public class Main { private static class SegmentTree { .. 2025. 1. 14.