그리디
-
백준 13164 | 행복유치원 [파이썬] 그리디카테고리 없음 2025. 4. 16. 09:36
백준 13164 문제행복 유치원 원장인 태양이는 어느 날 N명의 원생들을 키 순서대로 일렬로 줄 세우고, 총 K개의 조로 나누려고 한다. 각 조에는 원생이 적어도 한 명 있어야 하며, 같은 조에 속한 원생들은 서로 인접해 있어야 한다. 조별로 인원수가 같을 필요는 없다.이렇게 나뉘어진 조들은 각자 단체 티셔츠를 맞추려고 한다. 조마다 티셔츠를 맞추는 비용은 조에서 가장 키가 큰 원생과 가장 키가 작은 원생의 키 차이만큼 든다. 최대한 비용을 아끼고 싶어 하는 태양이는 K개의 조에 대해 티셔츠 만드는 비용의 합을 최소로 하고 싶어한다. 태양이를 도와 최소의 비용을 구하자.입력입력의 첫 줄에는 유치원에 있는 원생의 수를 나타내는 자연수 N(1 ≤ N ≤ 300,000)과 나누려고 하는 조의 개수를 나타내..
-
백준 18230 | 예쁜 타일링 [파이썬] 그리디카테고리 없음 2025. 4. 15. 08:51
백준 18230 문제풀이 [파이썬] 문제2021년, 정보대 화장실에서 물이 자꾸 범람하는 탓에 바닥 타일링을 다시 할 지경에 이르렀다. 타일링의 장인 민규는 "언제나 타일링은 예쁘게"라는 좌우명으로 살아왔다. 새로 타일링을 해야 하는 화장실 바닥은 2×N 크기의 격자로 표현이 된다. 민규에게는 2×1 크기의 타일 A개와 2×2 크기의 타일 B개가 있다. 각 타일들에는 "예쁨"의 정도가 있는데, 화장실 바닥의 예쁨은 바닥을 구성하는 타일들의 예쁨의 합이 된다. 민규는 가지고 있는 타일들을 이용해서 화장실 바닥의 예쁨이 최대로 되게 타일링 하려고 한다. 이때, 얻을 수 있는 예쁨의 최댓값은 얼마일까? 예제 1의 예쁨의 최댓값으로 가능한 경우이다. 타일은 90도 회전이 가능하다.입력첫째 줄에 정수 N, A..
-
백준 14247번 : 나무 자르기 | 그리디 [Python]카테고리 없음 2025. 4. 12. 09:29
백준 14247 문제영선이는 나무꾼으로 나무를 구하러 오전에 산에 오른다. 산에는 n개의 나무가 있는데, 영선이는 하루에 한 나무씩 n일 산에 오르며 나무를 잘라갈 것이다. 하지만 이 산은 영험한 기운이 있어 나무들이 밤만 되면 매우 빠른 속도로 자라는데, 그 자라는 길이는 나무마다 다르다.따라서, 어느 나무를 먼저 잘라가느냐에 따라서 총 구할 수 있는 나무의 양이 다른데,나무의 처음 길이와 하루에 자라는 양이 주어졌을 때, 영선이가 얻을 수 있는 최대 나무양을 구하시오.참고로, 자른 이후에도 나무는 0부터 다시 자라기 때문에 같은 나무를 여러 번 자를 수는 있다.입력첫째 줄에는 나무의 개수 n개가 있다. 나무는 1번부터 n번까지 있다.다음 줄에는 첫날 올라갔을 때 나무의 길이들 Hi_i가 n개가 순..
-
백준 19941 : 햄버거 분배 | 그리디 알고리즘카테고리 없음 2025. 4. 11. 10:06
https://www.acmicpc.net/problem/19941 문제기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 K$K$ 이하인 햄버거를 먹을 수 있다.햄버거사람햄버거사람햄버거사람햄버거햄버거사람사람햄버거사람123456789101112위의 상태에서 K=1$K = 1$인 경우를 생각해보자. 이 경우 모든 사람은 자신과 인접한 햄버거만 먹을 수 있다. 10번의 위치에 있는 사람은 11번 위치에 있는 햄버거를 먹을 수 있다. 이 경우 다음과 같이 최대 5명의 사람이 햄버거를 먹을 수 있다.2번 위치에 있는 사람: 1번 위치에 있는 햄버거4번 위치에 있는 사람: 5번 위치에 있는 햄버거6번 위치에 있는 사람: 7번 위치에 있는 햄버거9..