본문 바로가기

그리디11

[백준 2839/c++] 설탕 배달 동전을 사용한 그리디 문제에서 나머지가 항상 떨어지지 않는 경우도 포함하도록 바꾼 문제이다 제일 큰 무게의 봉지수를 하나씩 줄여나가며 나눠지는 경우를 찾으면 가장 빠른 경우의 수로 찾을 수 있다 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net #include using namespace std; int main(){ int n; int tok=-1; cin >> n; int a=n/5; for(int i=a; i>=0; i--){ if((n-5*i)%3=.. 2022. 6. 30.
[greedy / c++] 최대의 모험단 수 만들기 그리디 관련 공부가 필요해서 아래 유튜브의 그리디 영상을 보고 이해하는데 시간이 좀 걸렸던 문제를 코드로 하나하나 이해해가며 따라해보았다 생각보다 문제가 이해하기 난해했다. 코드 옆에 주석에 문제와 이해한 해석을 달아보았다 https://www.youtube.com/watch?v=2zjoKjt97vQ #include using namespace std; int n; vector arr; // 모험가 길드 문제 // n명의 모험가가 있다. 공포도가 x명인 모험가는 x명 이상의 모험단에 // 참여해야만 출발이 가능하다. 최대로 떠날 수 있는 모험단의 수는? // 모험가가 모험단에 모두 속할 필요는 없다. int main(){ // 공포도가 작은 수부터 모험단을 만들어야 // 최대의 모험단 수를 얻을 수 있다.. 2022. 6. 21.
[프로그래머스 1 / c++] 체육복 그리디 알고리즘을 이용하는 문제이다 탐욕이라는 말처럼 가장 큰것들을 골라서, 가장 작은 것들을 골라서, 가장 빨리 끝나거나 가장 오래 걸리는 것을 골라서 이게 좋아보이네! 하고 선택해서 풀어나가는 것을 그리디 알고리즘이라고 한다 가장 큰 수 들을 우선 선택하여 최소한의 개수로 목표 수를 만들기 낼 수 있는 것 중 하나씩 고를때 최대값들만 골라서 최대값 만들기 가장 빨리 끝나는 수업 순으로 나열하여 수강 수를 최대로 하기 벌금이 다른 여러명이 벌금을 나눠 낼때 벌금이 작은 사람들 순으로 나열하여 총 벌금을 최소로 하기 등등이 모두 그리디 알고리즘의 예시라고 한다 정말 가장 큰거! 가장 작은거! 가장 빨리 끝나는거! 가장 오래 걸리는거! 처럼 욕심부리는 것 같긴하다 처음 풀때 같거나 옆에 있음 인덱스를 양쪽.. 2022. 6. 20.