일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이분탐색
- 스택
- 완전탐색
- 코딩테스트
- 안드로이드
- 생명주기
- GIT
- 문자열다루기
- 트리
- dfs
- 그래프
- BFS
- 자바
- 프로그래머스
- 카카오블라인드
- 동적계획법
- component
- 세그먼트트리
- 백준
- BOJ
- 코틀린
- 알고리즘
- 다이나믹프로그래밍
- 배열
- 코딩
- activity
- 문자열
- 운영체제
- 분할정복
- Android
- Today
- Total
목록알고리즘 (51)
HS_development_log
문제 https://www.acmicpc.net/problem/2357 2357번: 최솟값과 최댓값 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수, 또는 제일 큰 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100,000)개 주어졌을 때는 어려운 문제가 된다. 이 문제를 해결해 보자. 여기서 a번째라는 것은 입력되는 순서로 a번째라는 이야기이다. 예를 들어 a=1, b=3이라면 입력된 순서대로 1번, 2번, 3번 정수 중에서 최소, 최댓값을 www.acmicpc.net 세그먼트 트리에 대한 이론을 공부하고 실전 문제에 적용하기위해 풀어본 문제. 문제 정답률이 약 48%로 세그먼트 트리에 대한 ..
자바를 이용한 세그먼트 트리의 기본구조입니다. 이진트리 구조로 구현되었습니다. 구간합을 예시로 들어서 구현했습니다. 세그먼트 트리 초기화 예를 들어 [ 1 , 2 , 3 , 4 , 5 , 6 ] 의 배열을 원소로갖는 세그먼트 트리의 모습은 아래 그림처럼 나와야합니다. 아래 코드로 이러한 모습이 구현이 가능합니다. public int init(int start, int end, int node) { if(start == end) { /* 리프노드이거나 자식노드들이 구간합이 모두구해졌을 경우 */ return tree[node] = arr[start]; /* 구간합 트리에 넣어준다 */ } /* 반씩 나눠서 재귀적으로 자식노드들의 구간합을 구해준다 */ int mid = (start+end)/2; retur..
자바를 이용한 트리의 기본구조 입니다. 이진트리의 구조가 아닙니다. 하나의 노드가 여러개의 자식노드를 가질 수 있도록 코딩했습니다. 소스코드 12345678910111213141516171819202122232425262728293031323334353637383940414243444546import java.util.*;public class Tree { public static void main(String[] args) { Node root = new Node("1"); Node n2 = new Node("2"); Node n3 = new Node("3"); Node n4 = new Node("4"); Node n5 = new Node("5"); root.add(n2); root.add(n3); r..