일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코틀린
- 문자열다루기
- 그래프
- 생명주기
- 분할정복
- BFS
- GIT
- 코딩
- Android
- dfs
- 완전탐색
- component
- 스택
- 코딩테스트
- 자바
- 백준
- 운영체제
- 문자열
- 알고리즘
- 안드로이드
- 배열
- 프로그래머스
- 카카오블라인드
- 동적계획법
- activity
- 세그먼트트리
- BOJ
- 이분탐색
- 다이나믹프로그래밍
- 트리
- Today
- Total
목록Algorithm-이론 (7)
HS_development_log
알고리즘 풀이에 도움이 되는 수학지식들을 정리했습니다. 나머지 연산 (A+B) % M = ((A%M) + (B%M)) % M (A*B) % M = ((A%M) * (B%M)) % M (A-B) % M = ((A%M) - (B%M) + M) % M 최대공약수 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import java.util.*; public class GCD { /* * 유클리드 호제법 * a를 b로 나눈 나머지를 r이라고 했을 때 * GCD(a,b) = GCD(b,r)과 같다 * r이 0이면 그 때 b가 최대 공약수이다. */ public static void main(String[] args) { gcd(10,20); } static int gcd..
자바를 이용한 세그먼트 트리의 기본구조입니다. 이진트리 구조로 구현되었습니다. 구간합을 예시로 들어서 구현했습니다. 세그먼트 트리 초기화 예를 들어 [ 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..