백준 힙 11279번 최대 힙 실버2
백준 1655번 가운데를 말해요 골드2
푼 것
- 작은 수를 max힙에 넣어두고, 큰 수를 min힙에 넣어둔다.
- 두 힙의 개수를 최대한 똑같게 만들되, 홀 수라면 max힙에 넣는다.
- max힙의 max값이 가운데 수
- 만약 max힙에 넣으려고 하는데, min힙의 최소값보다 num의 값이 크다면 min힙에서 하나를 빼서 max힙에 넣어준 다음에 min힙에 num을 넣는다
- 반대도 마찬가지
기타
https://velog.io/@bongf/220206-Algorithms-TIL#%ED%9E%99---3000-%EC%A4%91%EA%B0%84%EA%B0%92-%EA%B5%AC%ED%95%98%EA%B8%B0 지난 번에 이 문제와 유사
백준 18258번 큐2 실버4
푼 것
![](https://velog.velcdn.com/cloudflare/bongf/4f0abf7b-435a-4a9d-a5c1-efffe8bea462/image.png)
- 직접 구현 한 것 보다 dequeue를 쓴 것이 조금 더 빨랐다.
백준 2164번 카드2 실버4
백준 이진탐색 1920번 수찾기 실버4
백준 이진탐색 2805번 나무 자르기 실버3
푼 것
백준 2630번 분할정복 색종이 만들기 실버3
배운 것
- 저번 z문제 도 그렇고 종이 자를 때 그걸로 새로운 배열을 만들려하지 말고 r, c 값을 넘기자
종이 자르기
- 나는 시작, 끝의 행 열의 index 4개를 다 넘겨줬는데 사실, 시작점과 size만 넘겨주면 된다.
- 그리고 같은 색인지 아닌지 확인하면서 사실 한 번씩 순회하게 되므로, 4개씩 자르면서 같은 색이 아니면 4개 씩 잘라서 또 확인 보다는 가장 작은 사이즈로 자른 후에 합치는 것이 낫다 "분할정복" 문제니까 (병합 정렬을 생각하자)
백준 1629번 분할정복 곱셈 실버1
푼 것, 배운 것