본문 바로가기

Greedy8

[Greedy] 엘리스 - 구슬 꾸러미(py) 문제 엘리스 토끼는 구슬 장사를 위해 구슬을 꾸러미에 담아 포장을 하고 있습니다. 엘리스 토끼가 준비한 구슬은 색상별로 무게가 모두 다르며 구슬 꾸러미 또한 구슬을 담아낼 수 있는 무게가 모두 달라 최소한의 구슬 개수를 활용해 꾸러미를 채우려고 합니다. 색깔과 무게가 다른 3가지 종류의 구슬이 무제한으로 주어집니다. 구슬 무게 빨간 구슬 250g 파란 구슬 40g 흰 구슬 10g 예를 들어 300g의 꾸러미를 만들기 위해서는 빨간 구슬 1개, 파란 구슬 1개, 흰 구슬 1개로 최소 3개의 구슬이 필요합니다. 지시사항을 참고하여 코드를 작성하세요. 지시사항 사용자로부터 구슬 꾸러미의 무게를 입력받고 꾸러미를 만드는 데 사용되는 최소 구슬의 수를 출력하세요. (1 ≤ 구슬 꾸러미 무게 ≤ 10,000) 만약.. 2023. 7. 18.
[Greedy] 이코테 - 볼링공 고르기(py) 문제 A, B 두 사람이 볼링을 치고 있습니다. 두 사람은 서로 무게가 다른 볼링공을 고르려고 합니다. 볼링공은 총 N개가 있으며 각 볼링공마다 무게가 적혀 있고, 공의 번호는 1번부터 순서대로 부여됩니다. 또한 같은 무게의 공이 여러 개 있을 수 있지만, 서로 다른 공으로 간주합니다. 볼링공의 무게는 1부터 M까지의 자연수 형태로 존재합니다. 예를 들어 N이 5이고, M이 3이며 각각의 무게가 차례대로 1,3,2,3,2일 때 각 공의 번호가 차례대로 1번부터 5번까지 부여됩니다. 이때 두 사람이 고를 수 있는 볼링공 번호의 조합을 구하면 다음과 같습니다. (1번, 2번), (1번, 3번), (1번, 4번), (1번, 5번), (2번, 3번), (2번, 5번), (3번, 4번), (4번, 5번) 결과적으.. 2023. 7. 11.
[Greedy] 이코테 - 만들 수 없는 금액(py) 문제 동네 편의점의 주인인 동빈이는 N개의 동전을 가지고 있습니다. 이때 N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하세요. 예를 들어, N=5이고, 각 동전이 각각 3원, 2원, 1원, 1원, 9원짜리(화폐 단위) 동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 8원입니다. 또 다른 예시로, N=3이고, 각 동전이 각각 3원, 5원, 7원 동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 1원입니다. 입력 조건 첫째 줄에는 동전의 개수를 나타내는 양의 정수 N이 주어집니다. (1≤N≤1,000) 둘째 줄에는 각 동전의 화폐 단위를 나타내는 N개의 자연수가 주어지며, 각 자연수는 공백으로 구분합니다.. 2023. 7. 11.
[Greedy] 이코테 - 문자열 뒤집기(py) 문제 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 풀이 - 내 풀이 s = input() one = s.split('0') zero = s.split('1') one_len = 0 zero_len = 0 for i in one: if i != '': one_len += 1 for i in zero: if i != '': zero_len += 1 print(zero_len) if zero_len < one_len else print(one_len) 0과 1로 이루어진 문자열의 연속된 부분들을 부분 집합으로 .. 2023. 7. 11.
[Greedy] 이코테 - 모험가 길드(py) 문제 모험가 길드장인 동빈이는 모험가 그룹을 안전하게 구성하고자 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여해야 여행을 떠날 수 있도록 규정했다. N명의 모험가에 대한 정보가 주어졌을 때, 여행을 떠날 수 있는 그룹 수의 최댓값을 구하라. 입력 조건 첫째 줄에 모험가의 수 N이 주어집니다. (1 = min_info: max_info = max(info) n -= max_info info.remove(max_info) groups += 1 print(groups) 책 풀이를 확인하고 나면 말도 안되는 코드.. 오름차순으로 정렬은 잘 해줬지만, 이후 list에서 최댓값을 찾아 그 수만큼 먼저 그룹으로 만들어주어 시간이 훨씬 걸린다. (통과 못하는 테스트 코드도 있을 것 같다) - .. 2023. 7. 9.
[Greedy] 이코테 - 1이 될 때까지(py) 문제 어떠한 수 N이 1이 될 때 까지 다음의 두 과정 중 하나를 반복적으로 선택해 수행하려고 한다. 단, 두번째 연산은 N이 K로 나누어 떨어질 때만 선택할 수 있다. N에서 1을 뺀다. N을 K로 나눈다. N과 K가 주어질 때 N이 1이 될 때 까지 1번 혹은 2번의 과정을 수행해야 하는 최소 횟수를 구하는 프로그램을 작성하시오. 입력 조건 첫째 줄에 N(2 2023. 7. 9.