[Java/백준/BFS] 1655번: 가운데를 말해요
문제 www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 코드 우선순위 큐의 중간 값을 빼내는 게 가능한 건지 계속 고민했다. 물론 안됨ㅎㅎ.. 결국 maxHeap, minHeap 두개를 만들어서 사용하기로 했다. 보통의 minHeap은 우선순위 오름차순이라고 치면 이 가운데 원소를 기준으로 maxHeap, minHeap으로 나누는 것이다. (작은 부분이 maxHeap, 큰 부분이 minHeap) 예를 들어 1, 5, 2, 10, -99, 7, ..
2020. 11. 27.
[Java/프로그래머스/탐욕법] Level 2 : 구명 보트
문제 programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 처음 생각했던 방법(걍 틀림) 우선순위 큐에 넣어서 작은 것들부터 묶으려고 했다. 하지만 이 경우 people = {30, 40, 60, 70}, limit=100 일 때 (30,40) / 60 / 70 으로 3이 리턴된다. 옳은 답은 (70,30) / (60, 40) 으로 2가 리턴되어야 한다. 두번째로 생각한 방법 ( 효율성 테스트: 실패(..
2020. 11. 10.