[BOJ-2042][세그먼트 트리] 구간 합 구하기 - Java
문제 바로가기 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net 세그먼트 트리를 공부하고 풀기 좋은 첫 문제입니다. 그래도 아직 어렵네여 ㅜ import java.io.*; import java.util.*; class SegmentTree { long[] tree; SegmentTree(int N, long[] list) { tree = new long[N*4]; init(0, N-1, 1, list); } /** * @param start - 시작 ..
[2017 카카오코드 예선][BFS] 카카오프렌즈 컬러링북 - Java
문제 바로가기 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 간만에 간단한 BFS 문제입니다. 맨첨에 색깔이 같으면 같은 영역이라고 생각했는데 그것도 아니고 그냥 따로 봐주면 돼서 더 간단합니다. import java.util.*; class Solution { static class Dir { int y, x; Dir(int y, int x) { this.y = y; this.x = x; } } int[] dy = { 1, -1, 0, 0 }; int[] dx = { 0, 0, 1, -1 }; boolean..
[2019 카카오 개발자 겨울 인턴십][이분 탐색(Parametric Search)] 징검다리 건너기 - Java
문제 바로가기 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 오우 만만치 않은 문제입니다. 마찬가지로 효율성을 확보해야 하는 문제입니다. import java.util.*; class Solution { public int solution(int[] stones, int k) { // Parametric Search return parametric_search(stones, k); } public int parametric_search(int[] stones, int k) { int l = Arrays.stream(stones).min().getAsInt(); int r = Arrays.stream(stones).max(..