greedy [프로그래머스] 탐욕법(Greedy) - 큰 수 만들기 (JavaScript) 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만... greedy탐욕법greedy [BOJ] 12904 A와 B - JAVA Key Idea A를 추가하는 연산과 문자열을 뒤집고 뒤에 B를 추가하는 연산을 거꾸로 생각한다 T 에서 위의 연산들을 거꾸로 실행하여 S가 되는지 검사한다 문자열을 뒤집는 과정은 boolean 을 전역변수로 선언하여 head 쪽이 앞이면 true, tail 쪽이 앞이면 false 로 생각한다 T 문자열의 맨뒤에 있는 Char 를 검사하여 A 면 그냥 제거만하고 B 이면 제거를 한 후에 bo... greedyStringbojString 백준 1082, 방 번호 - DP, Greedy, 문자열 1) DP 배열 정의: String[] dp dp[cost]: cost원 금액 내로 만들 수 있는 최대 숫자 문자열 출력, 최대 숫자: BigInteger(dp[m]) => dp[] 원소에 Leading-Zero 문자열이 저장될 수 있으므로, BigInteger를 이용하여 Leading-Zero 문자열을 제거 BigInteger 클래스 int, long 범위를 넘어가는 매우 큰 정수를 사용,... DPString백준 1082 방 번호알고리즘그리디greedydynamic programming동적 계획법코딩 테스트DP Leetcode - 2231. Largest Number After Digit Swaps by Parity 주어진 integer값를 다음의 조건에 부합하는 경우에 swap하여 가장 큰 수로 변환. 각 자리수는 짝수 끼리 혹은 홀수끼리만 swap할 수 있음. greedy 하게 해결. 가장 첫자리수를 가장 큰값으로 swap할수 있고 가장 앞자리가 가장 큰 수라는게 보장됨. O(N^2)... leetcodegreedygreedy CodeUp 2001 : 최소 대금 문제설명 파파 파스타 가게는 점심 추천 파스타와 생과일 쥬스 세트 메뉴가 인기가 좋다. 이 세트 메뉴를 주문하면 그 날의 3 종류의 파스타와 2 종류의 생과일 쥬스에서 하나씩 선택한다. 파스타와 생과일 쥬스의 가격 합계에서 10%를 더한 금액이 대금된다. 어느 날의 파스타와 생과일 쥬스의 가격이 주어 졌을 때, 그 날 세트 메뉴의 대금의 최소값을 구하는 프로그램을 작성하라. 입력 입력은 5 ... 탐욕법알고리즘greedygreedy [Swift] 백준 11047 - 동전 0 매 선택의 순간마다 당장 눈앞에 보이는 최적의 선택만을 하여 최종적인 답에 도달하는 알고리즘이다. (이러한 선택의 결과가 항상 최적이라는 보장은 없지만 그리디 알고리즘을 적용하는 문제에서는 최적이 된다.) 최소 값을 찾아야하는 트리 구조가 있다고 하자 트리가 다음과 같이 생겼을 때 그리디 알고리즘은 3 -> 2-> 5 를 거쳐 5를 최소 값으로 판별한다. 이 예제에서 실제 최소 값은 1이지만... greedyswiftgreedy [Swift] 백준 2138 - 전구와 스위치 풀이 예를 들어 스위치 A, B, C가 있고 세 스위치는 모두 켜져있다고 하자. A B C 이와 같은 상태일 때 스위치 A를 누르면 A B C X X 0 스위치 B를 누르면 A B C 0 0 X 스위치 C를 누르면 A B C 0 X 0 이와 같은 변화로 알 수 있는 것은 스위치를 누르고 난 후에 그 상태가 고정되는 것은 눌러진 스위치가 아니라 눌러진 스위치 바로 전의 스위치라는 것이다. 스위... greedygreedy 2875 - 대화 or 인턴 이해 브론즈 문제이지만, 약간 생각을 해야한다고 생각한다. 조건처리하는데, 생각을 많이 한 것 같다. 소스 채점 결과... plzrungreedybaekjoonbaekjoon 1744 - 수 묶기 이해 나 같은 경우, 모든 경우의 수를 조건식으로 처리했으나 이는 좋지 않은 방법이라는 것을 알게 되었다. ✔️ 좋은 해결책으로 음수는 오름차순 정렬, 양수는 내림차순 정렬, 1은 곱하기 대신 더하는 방식 (0은 음수에 속하게 된다.) 0과 음수의 개수 합이 홀수라면 제일 작은 값을 정답에 더한다. 0과 음수의 개수 합이 짝수라면 두 수를 곱하고 정답에 더한다. 소스 첫 나의 소스 좋은 해결... plzrungreedybaekjoonbaekjoon 1783 - 병든 나이트 이해 규칙이 있는데 세로가 1일 때는 1 세로가 2일 때는 2번째(1칸 위로, 2칸 오른쪽), 3번째(1칸 아래로, 2칸 오른쪽) 밖에 사용하지 못한다. 그러므로, 이동 횟수가 최대 4이다. 오른쪽으로 2만큼이므로 min(4, m+1)이 된다. (예를 들어, m이 3이면 이동할 수 있는 칸은 2번이다.) 세로가 3이상일 때는 가로의 길이 6보다 크다면 시작을 2, 3으로 하고 7번부터는 1번... plzrungreedybaekjoonbaekjoon [백준] 7570번 줄 세우기 그런데 어린이들은 아직 번호 순서대로 줄을 잘 서지 못하므로 선생님이 다음과 같은 방법을 사용해서 번호순서대로 줄을 세우려고 한다. 방법: 줄 서있는 어린이 중 한 명을 선택하여 제일 앞이나 제일 뒤로 보낸다. 위의 방법을 사용할 때 어린이가 이동해서 빈자리가 생기는 경우에는 빈자리의 뒤에 있는 어린이들이 한 걸음씩 앞으로 걸어와서 빈자리를 메꾼다. 위 방법을 이용해서 다음과 같이 번호순서대... greedybaekjoonbaekjoon 백준 1461, 도서관 - Greedy 모든 책을 제자리에 놔둔 후, 다시 원점 0 으로 돌아올 필요 X => 가장 먼 거리의 m개 책을 마지막에 놔두고 종료해야 함 1) 각 책의 위치 리스트를 거리가 먼(절댓값이 큰) 순으로 정렬 음수 위치 리스트, 양수 위치 리스트 각각 나누어 저장 및 정렬 => 원점을 기준으로 서로 반대편(음수, 양수)에 있는 책들은 왕복을 각각 수행하므로 e.g. 한 번에 들 수 있는 책이 2권이고 남은 ... 그리디greedy백준 1461 도서관알고리즘코딩 테스트greedy ATM - 11399 이해 정렬 후 현재 합, 전체 총합을 각각 구하여 계산한다. 정렬 후 1번째 수는 n번 더해지고, 2번째 수는 n-1번 더해지고 ~ n번째 수는 1번 더해진다. 소스 채점 결과 결과를 보면 위에 (2), 밑에 (1) 채점 결과... plzrungreedybaekjoonbaekjoon 백준 1105, 팔 - Greedy 1) L 의 전체 자릿 수 != R 의 전체 자릿 수인 경우 8의 최소 개수는 0 2) L 의 전체 자릿 수 == R 의 전체 자릿 수인 경우 높은 자릿 수 부터 각 동일 자릿 수를 비교하여, 8로 같은 자릿 수의 개수 두 자릿 수가 다르면, 비교 종료 ex) 800, 899 => 1 (백의 자리 8) 8808, 8880 => 2 (천의 자리 8, 백의 자리 8) 1208, 1288 => 0... 그리디greedy알고리즘코딩 테스트백준 1105 팔greedy 백준 2437, 저울 - Greedy, 누적 합 n개의 추들의 조합으로 만들 수 없는 최소 무게 구하기 ① n개 추들의 조합으로 만들 수 있는 "최대 무게" = 모든 추들의 무게 합 ② n개 추들의 조합으로 만들 수 없는 "최대 무게" = 모든 추들의 무게 합 + 1 ③ 작은 무게 ~ 큰 무게 순으로 정렬했을 때, 인접한 추 끼리 무게 차이가 작아야 더 촘촘히(?) 추의 무게 합 구성 가능 n개 추들을 무게 작은 순으로 정렬 ①에서 유추한... 그리디greedy누적 합알고리즘백준 2437 저울코딩 테스트greedy 백준 1092, 배 - Greedy 각 크레인의 최대 무게 리스트, 각 박스의 무게 리스트를 큰 순으로 정렬 가장 큰 무게의 박스, 가장 큰 무게의 크레인부터 확인 1) 해당 박스를 해당 크레인으로 옮길 수 있는 경우 해당 박스를 박스 리스트에서 삭제 다음 박스, 다음 크레인 확인 2) 해당 박스를 해당 크레인으로 옮길 수 없는 경우 다음 박스(현재 해당 박스 이하의 무게)를 현재 크레인으로 옮길 수 있는지 확인 => 모든 크... 그리디greedy백준 1092 배알고리즘코딩 테스트greedy [백준 1049 - Kotlin] 기타줄 greedymathkotlingreedy [Swift] 백준 1541 - 잃어버린 괄호 풀이 실버2지만,, 어려웠다 🥲 여기서 포인트는 괄호의 수에는 제한이 없다 값을 최소로 만들려고 한다. 이 두가지 이다. 따라서 연산자가 "-"일 때마다 괄호를 넣어 주면 된다. 이렇게 하기 위해서 입력받은 값을 "-"를 기준으로 나눠주면 된다. 예를 들어 "55-50+40-60+20"을 입력받아 "-"를 기준으로 나누면 ["55","50+40","60+20"] 가 된다. 원소 들을 각각 모... greedyswiftgreedy 백준 20115, 에너지 드링크 - Greedy 규칙에 따라 합친 최종 에너지 드링크의 양을 최대로 만들기 => 절반을 버리고 합치므로, 절반을 버리는 드링크는 양이 작아야 함 규칙: 가장 작은 양의 드링크의 절반을 가장 큰 양의 드링크에다 부어서 합치기 => 가장 큰 양의 드링크가 계속 늘어나면서 갱신됨 1) 드링크 양 배열을 작은 순으로 정렬 2) 가장 큰 양(배열의 맨 뒤 원소)을 선택하여, 맨 앞의 작은 양부터 차례로 합쳐나감 in... 그리디greedy알고리즘백준 20115 에너지 드링크코딩 테스트greedy 백준 1715, 카드 정렬하기 - Greedy n개 카드 묶음의 경우, 총 (n-1)번 합침 2개 카드 묶음을 합치고, 합쳐진 카드 묶음은 또 다시 다른 카드 묶음과 합침 => 최소 비교 횟수로 모두 합치려면, 적은 카드 묶음끼리 합쳐나가야 함 => 각 카드 개수를 우선순위 큐에 저장 및 정렬해가면서 합침 1) PriorityQueue에 각 묶음의 카드 개수를 저장하여 정렬 카드 개수 적은 순으로 정렬 2) PriorityQueue에 원... 그리디greedy알고리즘백준 1715 카드 정렬하기코딩 테스트greedy 860. Lemonade Change 5달러의 레모네이드를 판매하는 가판대가 있다. 손님들은 당신에게서 구매하기 위해 대기하고 있고(queue), 한 번에 한 명씩 주문을 받을 수 있다. 각 손님들은 한 잔의 레모네이드를 구매할 때, $5,$10,$20 지폐 단위 중 하나로 지불한다. 당신은 반드시 5달러로 판매해야 하고, 손님들에게 올바른 거스름 돈을 주어야 한다. 판매 전 여분의 거스름 돈은 존재하지 않는다. 정수형 배열 b... easygreedyleetcodealgorithmalgorithm 백준 7983, 내일 할거야 - Greedy e.g. 예제 1에서 과제1의 종료일은 7일, 과제2의 종료일은 8일로 서로 안겹치게 배치됨 1) 과제 객체(과제 소요일 d_i, 과제 마감일 t_i) 배열을 정렬 과제 마감일(t_i)이 큰 순(뒷 일자가 먼저 오도록 늦은 순)으로 정렬 2) 마감일이 큰 과제부터 과제 (시작 일자, 종료 일자)를 지정 조건 ①: [기본 조건] 현재 과제의 종료 일자 <= 현재 과제의 마감일 현재 과제의 종료... 그리디greedy알고리즘백준 7983 내일 할거야코딩 테스트greedy leetcode 455. Assign Cookies 주의할 점 -> 그리디하게 배분하면 쉽게 풀 수 있는 문제지만, 예제에서는 모든 입력값이 정렬되어 있어 자칫 혼동될 수 있으나 원래 문제에는 정렬된 값이라는 제약이 없다는 점을 주의해야 한다. 2개의 리스트를 모두 번갈아 가면서 탐색하는 게 아니라 하나의 리스트를 순회하면서 다른 하나는 이진 검색으로 찾는 방법이다. 그런 다음 찾아낸 인덱스가 현재 부여한 아이들보다 클 경우에는 쿠키를 더 줄... greedyalgorithmalgorithm [Java] 백준 11399번 [ATM] 자바 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 P 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번,... Javagreedy백준algorithmJava Greedy_15_꿀따기(21758) 장소들 중 서로 다른 두 곳을 골라서 벌을 한 마리씩 둔다. 또, 다른 한 장소를 골라서 벌통을 둔다. 아래 그림에서 연한 회색의 장소는 벌이 있는 장소이고 진한 회색의 장소는 벌통이 있는 장소이다. 두 마리 벌은 벌통으로 똑바로 날아가면서 지나가는 모든 칸에서 꿀을 딴다. 각 장소에 적힌 숫자는 벌이 지나가면서 꿀을 딸 수 있는 양이다. 두 마리가 모두 지나간 장소에서는 두 마리 모두 표시... Silver1greedybaekjoonalgorithmSilver1 [Java] 백준 11047번 [동전 0] 자바 백준 11047번 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤... Javagreedy백준algorithmJava [백준] 1343번 폴리오미노 🔔 문제 민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB 이제 '.'과 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때 '.'는 폴리오미노로 덮으면 안 된다. 폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 50이다. 출력 첫째 ... greedybaekjoonbaekjoon
[프로그래머스] 탐욕법(Greedy) - 큰 수 만들기 (JavaScript) 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만... greedy탐욕법greedy [BOJ] 12904 A와 B - JAVA Key Idea A를 추가하는 연산과 문자열을 뒤집고 뒤에 B를 추가하는 연산을 거꾸로 생각한다 T 에서 위의 연산들을 거꾸로 실행하여 S가 되는지 검사한다 문자열을 뒤집는 과정은 boolean 을 전역변수로 선언하여 head 쪽이 앞이면 true, tail 쪽이 앞이면 false 로 생각한다 T 문자열의 맨뒤에 있는 Char 를 검사하여 A 면 그냥 제거만하고 B 이면 제거를 한 후에 bo... greedyStringbojString 백준 1082, 방 번호 - DP, Greedy, 문자열 1) DP 배열 정의: String[] dp dp[cost]: cost원 금액 내로 만들 수 있는 최대 숫자 문자열 출력, 최대 숫자: BigInteger(dp[m]) => dp[] 원소에 Leading-Zero 문자열이 저장될 수 있으므로, BigInteger를 이용하여 Leading-Zero 문자열을 제거 BigInteger 클래스 int, long 범위를 넘어가는 매우 큰 정수를 사용,... DPString백준 1082 방 번호알고리즘그리디greedydynamic programming동적 계획법코딩 테스트DP Leetcode - 2231. Largest Number After Digit Swaps by Parity 주어진 integer값를 다음의 조건에 부합하는 경우에 swap하여 가장 큰 수로 변환. 각 자리수는 짝수 끼리 혹은 홀수끼리만 swap할 수 있음. greedy 하게 해결. 가장 첫자리수를 가장 큰값으로 swap할수 있고 가장 앞자리가 가장 큰 수라는게 보장됨. O(N^2)... leetcodegreedygreedy CodeUp 2001 : 최소 대금 문제설명 파파 파스타 가게는 점심 추천 파스타와 생과일 쥬스 세트 메뉴가 인기가 좋다. 이 세트 메뉴를 주문하면 그 날의 3 종류의 파스타와 2 종류의 생과일 쥬스에서 하나씩 선택한다. 파스타와 생과일 쥬스의 가격 합계에서 10%를 더한 금액이 대금된다. 어느 날의 파스타와 생과일 쥬스의 가격이 주어 졌을 때, 그 날 세트 메뉴의 대금의 최소값을 구하는 프로그램을 작성하라. 입력 입력은 5 ... 탐욕법알고리즘greedygreedy [Swift] 백준 11047 - 동전 0 매 선택의 순간마다 당장 눈앞에 보이는 최적의 선택만을 하여 최종적인 답에 도달하는 알고리즘이다. (이러한 선택의 결과가 항상 최적이라는 보장은 없지만 그리디 알고리즘을 적용하는 문제에서는 최적이 된다.) 최소 값을 찾아야하는 트리 구조가 있다고 하자 트리가 다음과 같이 생겼을 때 그리디 알고리즘은 3 -> 2-> 5 를 거쳐 5를 최소 값으로 판별한다. 이 예제에서 실제 최소 값은 1이지만... greedyswiftgreedy [Swift] 백준 2138 - 전구와 스위치 풀이 예를 들어 스위치 A, B, C가 있고 세 스위치는 모두 켜져있다고 하자. A B C 이와 같은 상태일 때 스위치 A를 누르면 A B C X X 0 스위치 B를 누르면 A B C 0 0 X 스위치 C를 누르면 A B C 0 X 0 이와 같은 변화로 알 수 있는 것은 스위치를 누르고 난 후에 그 상태가 고정되는 것은 눌러진 스위치가 아니라 눌러진 스위치 바로 전의 스위치라는 것이다. 스위... greedygreedy 2875 - 대화 or 인턴 이해 브론즈 문제이지만, 약간 생각을 해야한다고 생각한다. 조건처리하는데, 생각을 많이 한 것 같다. 소스 채점 결과... plzrungreedybaekjoonbaekjoon 1744 - 수 묶기 이해 나 같은 경우, 모든 경우의 수를 조건식으로 처리했으나 이는 좋지 않은 방법이라는 것을 알게 되었다. ✔️ 좋은 해결책으로 음수는 오름차순 정렬, 양수는 내림차순 정렬, 1은 곱하기 대신 더하는 방식 (0은 음수에 속하게 된다.) 0과 음수의 개수 합이 홀수라면 제일 작은 값을 정답에 더한다. 0과 음수의 개수 합이 짝수라면 두 수를 곱하고 정답에 더한다. 소스 첫 나의 소스 좋은 해결... plzrungreedybaekjoonbaekjoon 1783 - 병든 나이트 이해 규칙이 있는데 세로가 1일 때는 1 세로가 2일 때는 2번째(1칸 위로, 2칸 오른쪽), 3번째(1칸 아래로, 2칸 오른쪽) 밖에 사용하지 못한다. 그러므로, 이동 횟수가 최대 4이다. 오른쪽으로 2만큼이므로 min(4, m+1)이 된다. (예를 들어, m이 3이면 이동할 수 있는 칸은 2번이다.) 세로가 3이상일 때는 가로의 길이 6보다 크다면 시작을 2, 3으로 하고 7번부터는 1번... plzrungreedybaekjoonbaekjoon [백준] 7570번 줄 세우기 그런데 어린이들은 아직 번호 순서대로 줄을 잘 서지 못하므로 선생님이 다음과 같은 방법을 사용해서 번호순서대로 줄을 세우려고 한다. 방법: 줄 서있는 어린이 중 한 명을 선택하여 제일 앞이나 제일 뒤로 보낸다. 위의 방법을 사용할 때 어린이가 이동해서 빈자리가 생기는 경우에는 빈자리의 뒤에 있는 어린이들이 한 걸음씩 앞으로 걸어와서 빈자리를 메꾼다. 위 방법을 이용해서 다음과 같이 번호순서대... greedybaekjoonbaekjoon 백준 1461, 도서관 - Greedy 모든 책을 제자리에 놔둔 후, 다시 원점 0 으로 돌아올 필요 X => 가장 먼 거리의 m개 책을 마지막에 놔두고 종료해야 함 1) 각 책의 위치 리스트를 거리가 먼(절댓값이 큰) 순으로 정렬 음수 위치 리스트, 양수 위치 리스트 각각 나누어 저장 및 정렬 => 원점을 기준으로 서로 반대편(음수, 양수)에 있는 책들은 왕복을 각각 수행하므로 e.g. 한 번에 들 수 있는 책이 2권이고 남은 ... 그리디greedy백준 1461 도서관알고리즘코딩 테스트greedy ATM - 11399 이해 정렬 후 현재 합, 전체 총합을 각각 구하여 계산한다. 정렬 후 1번째 수는 n번 더해지고, 2번째 수는 n-1번 더해지고 ~ n번째 수는 1번 더해진다. 소스 채점 결과 결과를 보면 위에 (2), 밑에 (1) 채점 결과... plzrungreedybaekjoonbaekjoon 백준 1105, 팔 - Greedy 1) L 의 전체 자릿 수 != R 의 전체 자릿 수인 경우 8의 최소 개수는 0 2) L 의 전체 자릿 수 == R 의 전체 자릿 수인 경우 높은 자릿 수 부터 각 동일 자릿 수를 비교하여, 8로 같은 자릿 수의 개수 두 자릿 수가 다르면, 비교 종료 ex) 800, 899 => 1 (백의 자리 8) 8808, 8880 => 2 (천의 자리 8, 백의 자리 8) 1208, 1288 => 0... 그리디greedy알고리즘코딩 테스트백준 1105 팔greedy 백준 2437, 저울 - Greedy, 누적 합 n개의 추들의 조합으로 만들 수 없는 최소 무게 구하기 ① n개 추들의 조합으로 만들 수 있는 "최대 무게" = 모든 추들의 무게 합 ② n개 추들의 조합으로 만들 수 없는 "최대 무게" = 모든 추들의 무게 합 + 1 ③ 작은 무게 ~ 큰 무게 순으로 정렬했을 때, 인접한 추 끼리 무게 차이가 작아야 더 촘촘히(?) 추의 무게 합 구성 가능 n개 추들을 무게 작은 순으로 정렬 ①에서 유추한... 그리디greedy누적 합알고리즘백준 2437 저울코딩 테스트greedy 백준 1092, 배 - Greedy 각 크레인의 최대 무게 리스트, 각 박스의 무게 리스트를 큰 순으로 정렬 가장 큰 무게의 박스, 가장 큰 무게의 크레인부터 확인 1) 해당 박스를 해당 크레인으로 옮길 수 있는 경우 해당 박스를 박스 리스트에서 삭제 다음 박스, 다음 크레인 확인 2) 해당 박스를 해당 크레인으로 옮길 수 없는 경우 다음 박스(현재 해당 박스 이하의 무게)를 현재 크레인으로 옮길 수 있는지 확인 => 모든 크... 그리디greedy백준 1092 배알고리즘코딩 테스트greedy [백준 1049 - Kotlin] 기타줄 greedymathkotlingreedy [Swift] 백준 1541 - 잃어버린 괄호 풀이 실버2지만,, 어려웠다 🥲 여기서 포인트는 괄호의 수에는 제한이 없다 값을 최소로 만들려고 한다. 이 두가지 이다. 따라서 연산자가 "-"일 때마다 괄호를 넣어 주면 된다. 이렇게 하기 위해서 입력받은 값을 "-"를 기준으로 나눠주면 된다. 예를 들어 "55-50+40-60+20"을 입력받아 "-"를 기준으로 나누면 ["55","50+40","60+20"] 가 된다. 원소 들을 각각 모... greedyswiftgreedy 백준 20115, 에너지 드링크 - Greedy 규칙에 따라 합친 최종 에너지 드링크의 양을 최대로 만들기 => 절반을 버리고 합치므로, 절반을 버리는 드링크는 양이 작아야 함 규칙: 가장 작은 양의 드링크의 절반을 가장 큰 양의 드링크에다 부어서 합치기 => 가장 큰 양의 드링크가 계속 늘어나면서 갱신됨 1) 드링크 양 배열을 작은 순으로 정렬 2) 가장 큰 양(배열의 맨 뒤 원소)을 선택하여, 맨 앞의 작은 양부터 차례로 합쳐나감 in... 그리디greedy알고리즘백준 20115 에너지 드링크코딩 테스트greedy 백준 1715, 카드 정렬하기 - Greedy n개 카드 묶음의 경우, 총 (n-1)번 합침 2개 카드 묶음을 합치고, 합쳐진 카드 묶음은 또 다시 다른 카드 묶음과 합침 => 최소 비교 횟수로 모두 합치려면, 적은 카드 묶음끼리 합쳐나가야 함 => 각 카드 개수를 우선순위 큐에 저장 및 정렬해가면서 합침 1) PriorityQueue에 각 묶음의 카드 개수를 저장하여 정렬 카드 개수 적은 순으로 정렬 2) PriorityQueue에 원... 그리디greedy알고리즘백준 1715 카드 정렬하기코딩 테스트greedy 860. Lemonade Change 5달러의 레모네이드를 판매하는 가판대가 있다. 손님들은 당신에게서 구매하기 위해 대기하고 있고(queue), 한 번에 한 명씩 주문을 받을 수 있다. 각 손님들은 한 잔의 레모네이드를 구매할 때, $5,$10,$20 지폐 단위 중 하나로 지불한다. 당신은 반드시 5달러로 판매해야 하고, 손님들에게 올바른 거스름 돈을 주어야 한다. 판매 전 여분의 거스름 돈은 존재하지 않는다. 정수형 배열 b... easygreedyleetcodealgorithmalgorithm 백준 7983, 내일 할거야 - Greedy e.g. 예제 1에서 과제1의 종료일은 7일, 과제2의 종료일은 8일로 서로 안겹치게 배치됨 1) 과제 객체(과제 소요일 d_i, 과제 마감일 t_i) 배열을 정렬 과제 마감일(t_i)이 큰 순(뒷 일자가 먼저 오도록 늦은 순)으로 정렬 2) 마감일이 큰 과제부터 과제 (시작 일자, 종료 일자)를 지정 조건 ①: [기본 조건] 현재 과제의 종료 일자 <= 현재 과제의 마감일 현재 과제의 종료... 그리디greedy알고리즘백준 7983 내일 할거야코딩 테스트greedy leetcode 455. Assign Cookies 주의할 점 -> 그리디하게 배분하면 쉽게 풀 수 있는 문제지만, 예제에서는 모든 입력값이 정렬되어 있어 자칫 혼동될 수 있으나 원래 문제에는 정렬된 값이라는 제약이 없다는 점을 주의해야 한다. 2개의 리스트를 모두 번갈아 가면서 탐색하는 게 아니라 하나의 리스트를 순회하면서 다른 하나는 이진 검색으로 찾는 방법이다. 그런 다음 찾아낸 인덱스가 현재 부여한 아이들보다 클 경우에는 쿠키를 더 줄... greedyalgorithmalgorithm [Java] 백준 11399번 [ATM] 자바 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 P 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번,... Javagreedy백준algorithmJava Greedy_15_꿀따기(21758) 장소들 중 서로 다른 두 곳을 골라서 벌을 한 마리씩 둔다. 또, 다른 한 장소를 골라서 벌통을 둔다. 아래 그림에서 연한 회색의 장소는 벌이 있는 장소이고 진한 회색의 장소는 벌통이 있는 장소이다. 두 마리 벌은 벌통으로 똑바로 날아가면서 지나가는 모든 칸에서 꿀을 딴다. 각 장소에 적힌 숫자는 벌이 지나가면서 꿀을 딸 수 있는 양이다. 두 마리가 모두 지나간 장소에서는 두 마리 모두 표시... Silver1greedybaekjoonalgorithmSilver1 [Java] 백준 11047번 [동전 0] 자바 백준 11047번 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤... Javagreedy백준algorithmJava [백준] 1343번 폴리오미노 🔔 문제 민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB 이제 '.'과 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때 '.'는 폴리오미노로 덮으면 안 된다. 폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 50이다. 출력 첫째 ... greedybaekjoonbaekjoon