`Tree 탐색
저번 스터디를 통해 트리를 만들어 본 걸 이용해서 해결
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 import java.
`map을 이용해 구현
처음부터 시뮬레이션 하듯이 스트리밍 전, 후~종료 에 대한 처리를 순차적으로 함.
아예 안 들어오는 경우를 생각 안 했다가 br.readline == null 을 넣고 해결
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 import java.
`.
물병을 2의 배수만큼 만들 수 있어서 이진법으로 쪽으로 생각하다가 2를 나누면서 나오는 1의 개수가 물병 개수라고 생각할 수 있었음.
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 import java.
`greedy
greedy한 문제를 풀고 싶어서 내가 선택한 문제. 단순히 처음부터 검사해서 다르면 전환해서 풀면 되는 문제였다.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 import java.
`브루트 포스 + 백트래킹
예시가 너무해서 찾다가 유사한 다른 문제를 찾았다
https://www.acmicpc.net/problem/1038
조합을 구했을 때 모든 수가 중복되지 않아 그것을 큰 순서로 나열했을 때 모두 줄어드는 숫자라 할 수 있다.
$_{n} \mathrm{C}_{0} + _{n} \mathrm{C}_{1} + … + _{n} \mathrm{C}_{n} = 2^n$ 이기 때문에 하나도 뽑지 않을 경우를 제외한 1023가지의 경우의 수 밖에 나올 수 없음.
`Dynamic Programming
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 32 33 34 35 36 37 38 39 40 41 42 import java.
`map을 사용하여 구현하는 방식의 문제.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 import java.