본문 바로가기

greedy6

[Algorithm] Greedy 30 (백준) - 에이젠 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 공략 10^5개의 숫자로 구성된다라는 말은 예제를 보면 10^5보다 큰 숫자가 있었기에 자리수가 10^5 자리까지 있다는 것을 알 수 있었습니다. 완전탐색으로는 역시 풀 수 없겠죠. 1. 숫자 안에 0 이 꼭 필요하다. 30의 배수이기 때문에 0이 없으면 안 되는 것을 알 수 있었습니다. 1의자리 빼고는 3의배수가 나오도록 가장 큰 수를 찾아야하는데... 결국 힌트를 찾아보았습니다. 2. 모든 자.. 2022. 9. 12.
[Algorithm] Greedy 대회or인턴 (백준) - 에이젠 https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net 실수 남자1명 여자2명인데 반대로 읽음... 낙오자 계산할때 팀매칭된 그룹 수를 갱신해 주지 않아서 틀림. 공략 알고리즘 중급 1/3 의 그리디 연습 문제입니다. 남자가 인원수가 훨씬 많다는 가정하에 과정을 설명해보겠습니다. 1. 각각 주어진 남 여 인원수를 팀에 필요한 인원수로 나눕니다. M / 2 : 몫1 + 나머지1 , N / 1 : 몫2 + 나머지2 2. 각각 나눈 몫중에 작은 값이 인턴이 없을 때 나올 수 있는 팀 개수입니다. 남자가 훨씬 많으니 몫2가 .. 2022. 9. 11.
[Algorithm] Greedy 잃어버린 괄호(백준) - 에이젠 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net '공략 알고리즘 중급 1/3 의 그리디 연습 문제입니다. + - 연산만으로 이루어진 식에 적절히 괄호를 사용하여 최솟값을 출력하는 것이 목표입니다. 가장 큰 수를 뺄셈해주면 최솟값이 나오는 것을 우리는 알고 있죠. 따라서 모든 +연산을 수행하고 마지막에 남은 - 연산을 해주면 답이 나오겠습니다. import java.util.*; public class Main { static Scann.. 2022. 9. 9.
[Algorithm] Greedy 동전0 (백준) - 에이젠 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 공략 백준 알고리즘 분류가 아닌 온라인 강의에 있는 문제를 따라가면서 풀기로 계획을 바꾸었습니다. 알고리즘 중급 1/3 의 그리디 첫번째 문제입니다. 그리디 알고리즘을 처음 소개한대로 이번 문제도 매 순간 최적의 값을 찾아 반복하면 되겠습니다. 목표한 K원만큼을 최소한의 동전으로 채우는 것이 목표입니다. 가치가 큰 동전을 최대한 많.. 2022. 9. 2.
[Algorithm] Greedy 설탕 배달 (백준) - 에이젠 https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 공략 백준 알고리즘 분류에서 그리디 알고리즘 첫번째 문제 입니다. 그리디는 최적에 해에 가까운 값을 찾을 때 사용되며 매 순간 최적이라고 생각되는 경우를 선택하며 반복합니다. 문제에서 이와 같은 방식으로 풀어보겠습니다. 5kg 봉지와 3kg봉지에 Nkg의 설탕을 담아 배달한다고 합니다. 어떻게 담아야 봉지 개수를 최소로 할 수 있을까요? 직관적으로 5kg이 많을수록 봉지 개수가 최소한인 최적의 값인 것을 알.. 2022. 9. 1.
[Algorithm] 6월 11일 알고리즘 연습 (프로그래머스 LEVEL2) - 에이젠 Lv. 2 주식가격 - 실패 실패한 풀이 : 테스트케이스만 통과... 방법 자체는 틀린 것 같지 않아서 다시 해결해보아야겠다 class Solution { public int[] solution(int[] prices) { int[] answer = new int[prices.length]; Queue tempQ = new LinkedList(); Stack stack = new Stack(); int pre = 0; for(int i = 0; i < prices.length; i++){ if(pre prices[i]){ int poped = stack.pop(); tempQ.add(0); } tempQ.add(prices[i]); //모두 빼낸 후 빼낸만큼 0을 쌓기 while(tempQ.size() .. 2022. 6. 11.
728x90