그리디 5

[백준 19598번] 최소 회의실 개수 - java

문제 설명1. 첫째 줄에 회의의 갯수 N이 주어진다.2. 그 다음주터 N개의 회의 시작시간 - 끝나는 시간이 주어진다.3. 그 시간을 통해 모든 회의가 멈추지 않게 작동하는 회의실의 최소 갯수를 구하면 된다.풀이 과정 1. (내가 이렇게 풀어서 시간초과가 발생했었는데) 어떤 회의가 언제부터 언제인지를 알 필요는 없다. 2. 그냥 시작시간부터 회의실 하나의 자리를 차지하고 있고, 뭐가 됐든 나가는 시간에는 나간다는 것이다. 3. 그러니까 어떤 회의가 언제인지 알 필요는 없고, 언제 입장인지 언제 퇴장인지를 알면 된다. 4. 그러고 시간 순서대로 나열하면 회의실에 들어가 있는 회의의 갯수를 알 수 있다.  코드import java.util.*;public class Main { public static v..

알고리즘 공부 2024.11.26

[백준 2258번] 정육점 - java

문제 설명 1. 고기의 수 N과 필요한 고기의 무게 M이 주어진다. 2. 고기의 무게과 가격이 주어진다. 3. 구매한 고기보다 싼 고기는 공짜로 준다. 4. 가장 적은 돈을 들여서 고기를 사는 방법을 구하면 된다. 풀이 과정 1. 이거 실버1인거 보고 방심하고 풀었는데...... 진짜 엄청 헤맸다. 쉽게 보고 풀면 안되는 함정문제이다. 2. 구매한 고기보다 싸면 공짜로 주니까 그냥 가격순으로 오름차순 하면서 더해주면 되겠지? 했는데 싼 고기라는게 굉장히 중요하다. 3. 즉, 구매한 고기랑 같은 가격의 고기는 공짜로 안준다!!! 4. 이를 생각하고 풀이과정을 도출해보자 A. 우선순위 큐를 구현하여 가격이 같으면 무게는 내림차순으로 가게끔 으로 만들어 준다. B. 이 우선순위 큐가 끝날 때 까지 무게를 구해..

알고리즘 공부 2022.04.10

[백준 11509번] 풍선 맞추기 - java

문제 설명 1. 풍선의 수 N이 주어진다. 2. 왼쪽에서 오른쪽으로 화살을 쏘고, 풍선을 맞추게 되면 높이가 1줄어서 화살이 날아가게 된다. 3. 아래높이의 풍선이 있으면 또 이걸 터트리고 높이가 1 줄어든다. 4. 최소의 화살개수를 구하면 된다. 풀이 과정 1. 그리디...겠지? 나는 걍 해쉬맵으로 구현했다. 2. 풀이 과정은 이렇게 했다. A. 풍선을 처음부터 순서대로 확인하면서, HashMap에 해당 높이에 있는 화살이 있는지 먼저 파악해준다. B. 해당 높이에 화살이 없으면 쏴야하는 화살의 개수는 하나 늘고, 만약에 있으면 해당 높이의 화살을 하나 없애준다. C. 어쨌든 이 화살은 풍선을 맞추었으니, 아래 높이의 화살로 변경될것이다. D. 참고로, HashMap은 처음 풍선들의 위치를 받을때마다 ..

알고리즘 공부 2022.04.09

[백준 13164번] 행복 유치원- java

문제 설명 1. 학생의 수 N, 조의 수 K가 주어진다. 2. N명의 학생은 오름차순으로 주어지고, K개의 조로 나누어야 한다. 3. 티셔츠를 맞추는 비용은 각 조에서 가장 키가 큰 원생과 가장 작은 원생의 차이만큼 주어진다. 4. 최소의 비용을 구하면 되는 문제이다. 풀이 과정 1. 그리디 문제이고, 이 문제랑 거의 똑같은 로직을 사용하면 쉽게 구할 수 있는 문제이다. 2. 풀이 방법은 거의 똑같은데, 설명하면 이와 같다. A. 학생 수가 순서대로 정리되어 있으므로, N명의 학생에 대해 키 차이를 구해준다. B. N-1개의 키차이의 배열이 주어질 텐데 이를 우선순위 큐에 하나씩 넣어준다. 우선순위 큐는 내림차순으로 정리된다. C. K개의 조로 이루어져 있고, 최소의 가격을 구해야 하므로 조를 구할 때 ..

알고리즘 공부 2022.04.09

[백준 2212번] 센서 - java

문제 설명 1. 센서의 개수 N, 집중국의 개수 K가 주어진다. 2. N개의 센서에 대해 집중국을 세워야 한다. 3. 문제가 이해가지 않아 한참을 해맸다... 문제에서 구해야 하는 내용에 대해 말하자면 - 직선 상에 센서들이 좌표를 갖고 주어진다. [2, 8, 10, 12, 13, 4] 요렇게 센서들이 주어지고, 만약 3개의 집중국을 세워야 한다고 해 보자 센서를 정렬하면 이렇게 될 것이고, 이 중 3개의 집중국이 커버 하도록 한다면 이런 식으로 나타낼 수 있다. -> [2, 2, 1]의 범위를 커버한다. 풀이 과정 1. 위의 내용을 기준으로 한번 생각을 해보면 센서들을 정렬한 후, 그 거리의 차를 구해주면 각각 센서들의 거리의 차를 구할 수 있다. 2. 그렇다면 집중국이 커버해야 하는 최소의 거리를 구..

알고리즘 공부 2022.02.21