문제1049번: 기타줄문제 이해끊어진 기타 줄을 새로 구매끊어진 기타 줄 개수 N, 기타 줄 브랜드 M기타 줄 6개 패키지 가격과 낱개(1)로 살 때의 가격이 주어짐적어도 N개의 기타 줄을 사기 위한 최소 가격은?풀이최소 가격을 구하는 것이므로 6개의 최소 가격과 1개의 최소 가격 이외에는 필요가 없음기타 줄 6개의 최소 가격과 기타 줄 1개의 최소 가격을 구해 N개를 구매하기 위한 가격 도출기타 줄 6개의 최솟값과 1개의 최솟값을 각각 구함6개 6개 > 1개 * 6이면, 6개를 (N // 6) 개만큼 구매(N % 6) 개의 가격이 싼 걸로 구매, 1개 * (N % 6) vs 6개코드기타 줄의 최대 가격이 1000이므로 최솟값을 1001로 설정import sysinput = sys.stdin.readli..
문제1026번: 보물문제 이해길이가 N인 정수 배열 A와 BS = A[0] × B[0] + ... + A[N-1] × B[N-1]S의 값을 최소화하기 위해 A의 수 재배열, B의 수는 재배열 XA의 수를 재배열하나 A, B의 수를 재배열하나 결과는 달라지지 않음A의 수는 모든 B의 수와 연산이 될 수 있기 때문풀이B의 가장 큰 수를 A의 가장 작은 수와 곱하게 만들어 최솟값 계산A와 B를 모두 조작해도 관계없기 때문에 A와 B를 정렬하여 계산A를 내림차순으로 정렬B를 오름차순으로 정렬A와 B의 각 원소의 곱을 계산코드import sysinput = sys.stdin.readlinen = int(input())A = sorted(list(map(int, input().split())), reverse=Tr..
그리디개념 정리그리디 알고리즘현재 상황에서 지금 당장 좋은 것만 고르는 방법매 순간 가장 좋은 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않음 문제 유형다른 알고리즘에 비해 "사전에 외우고 있지 않아도 풀 수 있는 가능성이 높은 문제 유형"다익스트라 알고리즘 (최단 경로)과 같은 특이 케이스를 제외하고는 암기로 대처하기가 어려움보통 창의력, 즉 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력 요구예제 : 거스름돈문제당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야 할 돈이 N원일 때, 거슬러 줘야 할 동전의 최소 개수를 구하라. 단, 거슬러 줘야 할..