목록greedy (26)
기록방
👉 문제링크 2810번: 컵홀더 첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다. www.acmicpc.net 🔸 문제 분석 🔸 좌석 정보가 주어지면 컵 놓을 수 있는 사람의 최대값을 출력한다. 일반석과 커플석을 구분해 계산한다. 일반석은 왼쪽 컵홀더가 비었으면 무조건 왼쪽, 아니면 오른쪽에 놓는다. 따라서 무조건 컵을 배치할 수 있다. 커플석은 왼쪽과 오른쪽 구분이 필요하다. 커플석의 왼쪽 좌석은 왼쪽 컵홀더에 컵이 놓였는지 확인이 필요하다. 🔸 코드 🔸 n = int(input()) arr = list(input()) answer = 0 nextL = False left = True # 왼쪽 컵홀더 사용이 되는가 for i in arr[:-1]: if ..
👉 문제링크 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 🔸 문제 분석 🔸 끊어진 기타줄의 수 n, 기타줄 브랜드의 수 m이 입력된다. 기타줄 브랜드 수 m만큼, 6팩 가격과 낱개 가격이 입력된다. n개의 기타줄을 사는데 가장 저렴한 가격을 출력한다. 초과로 사더라도 싸기만 하면 된다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Strin..
👉 문제링크 18238번: ZOAC 2 2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해 www.acmicpc.net 🔸 문제 분석 🔸 입력된 문자열을 원형판에서 선택하기 위해서, 최소로 움직일때 걸리는 시간을 출력한다. 🔸 코드 🔸 string = list(input()) idx = 0 answer = 0 for s in string: next = ord(s) - ord('A') diff = abs(next - idx) if diff
👉 문제링크 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 🔸 문제 분석 🔸 입력받은 S를 총합으로 두는 자연수 조합 중에 최대값을 출력한다. 🔸 코드 🔸 s = int(input()) n = 1 while n * (n + 1) / 2
👉 문제링크 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 🔸 문제 분석 🔸 입력받은 로프로 들 수 있는 최대 중량을 출력한다. 최대 중량은 가장 약한 로프 * 로프의 개수 이다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] ar..