본문 바로가기

Algorithm/Greedy

(40)
(C++) - LeetCode (easy) 1005. Maximize Sum Of Array After K Negations https://leetcode.com/problems/maximize-sum-of-array-after-k-negations/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com greedy문제 였습니다. 📕 풀이방법 📔 풀이과정 원소 전체 합이 최대가 되려면 가장 작은 음수부터 최대한 flip해줘야합니다. 따라서 1. nums를 먼저 오름차순으로 정렬해줍니다.2..
(C++) - LeetCode (easy) 717. 1-bit and 2-bit Characters https://leetcode.com/problems/1-bit-and-2-bit-characters/description/ 1-bit and 2-bit Characters - LeetCode Can you solve this real interview question? 1-bit and 2-bit Characters - We have two special characters: * The first character can be represented by one bit 0. * The second character can be represented by two bits (10 or 11). Given a binary array bits that leetcode.com 규칙을 찾아 구현하는 문제였습니다. ..
(C++) - LeetCode (easy) 121. Best Time to Buy and Sell Stock https://leetcode.com/problems/best-time-to-buy-and-sell-stock/ Best Time to Buy and Sell Stock - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com greedy로 해결했습니다. 📕 풀이방법 📔 입력 및 초기화 저점 매수를 의미하는 변수 buy와 정답 ans를 선언 후 초기화해줍니다. 📔 풀이과정 1. prices의 원소를 순회합니다. 1-1 저점을 발견하면 buy에 최솟값을 저장해줍니다. 1..
(C++) - 백준(BOJ) 11908 : 카드 https://www.acmicpc.net/problem/11908 11908번: 카드 승현이는 앞면과 뒷면이 있는 카드 n장을 가지고 있습니다. 각 카드의 앞면에는 1 이상 2222 이하의 정수가 적혀 있으며, 이 수는 카드마다 서로 다릅니다. 각 카드의 뒷면에는 동물 그림이 그려져 www.acmicpc.net greedy문제였습니다. 📕 풀이방법 📔 입력 및 초기화 수의 개수 n, 정답을 출력할 sum, 수의 정보를 입력받을 vector v를 선언한 후 적절히 입력받습니다. 📔 풀이과정 두 수를 비교해 작은 수는 주머니로 이동합니다. 이 규칙에 의해 가장 큰 수는 어떻게 해도 주머니로 이동할 수 없습니다. 따라서 주머니에 들어 있는 수들의 최대합은 가장 큰 수를 제외한 나머지 수들이 됩니다. 1. v..
(C++) - 백준(BOJ) 1817 : 짐 챙기는 숌 https://www.acmicpc.net/problem/1817 1817번: 짐 챙기는 숌 첫째 줄에 책의 개수 N과 박스에 넣을 수 있는 최대 무게 M이 주어진다. N은 0보다 크거나 같고 50보다 작거나 같은 정수이고, M은 1,000보다 작거나 같은 자연수이다. N이 0보다 큰 경우 둘째 줄에 책 www.acmicpc.net greedy 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 책 개수 bookNum, 박스에 넣을 수 있는 최대 무게 maxWeight, 정답을 출력할 answer, 박스에 책을 넣는 현황을 비교할 sum, 책들의 무게 정보 vector booksWeight를 선언 후 적절히 입력받습니다. 📔 풀이과정 책의 무게를 오름차순으로 정렬하면 더 적은 박스를 사용할 수 있지만 문제조건..
(C++) - 백준(BOJ) 2891 : 카약과 강풍 https://www.acmicpc.net/problem/2891 2891번: 카약과 강풍 첫째 줄에 팀의 수 N, 카약이 손상된 팀의 수 S, 카약을 하나 더 가져온 팀의 수 R이 주어진다. (2 ≤ N ≤ 10, 1 ≤ S, R ≤ N) 둘째 줄에는 카약이 손상된 팀의 번호가 주어진다. 팀 번호는 중복되지 않 www.acmicpc.net greedy 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 전체 팀 수 n, 카약이 부러진 팀 수 s, 여분 카약 가진 팀 수 r, 팀별 보유 현황 일차원 배열 kayak, 정답을 출력할 변수 ans를 선언 후 입력받습니다.* 카약의 여분이 있으나 부러질 수 있음을 고려해야 합니다. 따라서 처음 kayak을 1로 초기화 한 후 부러졌다면 1을, 여분이 있다면 1을 더..
(C++) - 백준(BOJ) 17509 : And the Winner Is... Ourselves! https://www.acmicpc.net/problem/17509 17509번: And the Winner Is... Ourselves! 11 lines are given as the input. The $i$-th line contains two space-separated integers, $D_i$ and $V_i$, where $D_i$ is the amount of minutes required to solve the $i$-th problem, and $V_i$ is the number of incorrect verdicts on the $i$-th problem. For eac www.acmicpc.net greedy문제였습니다. 📕 풀이방법 📔 입력 및 초기화 정답을 출력할 penalty..
(C++) - 백준(BOJ) 11256 : 사탕 https://www.acmicpc.net/problem/11256 11256번: 사탕 당신은 사탕 공장의 주인이다. 날마다, 당신은 J개의 사탕을 가게에 보내기 위해 상자에 포장해야 한다. 당신은 크기가 다른 상자 N개를 가지고 있다. 당신은 편리를 위해 상자를 최소한으로 쓰 www.acmicpc.net greedy문제였습니다. 📕 풀이방법 📔 입력 및 초기화 testcase, 사탕 수 candyNum, box 수 boxNum, sum, cnt, 상자를 입력받을 vector boxes를 선언 후 입력받습니다. 📔 풀이과정 1. boxes를 가로 * 세로가 큰 순으로 정렬해줍니다.2. 필요한 상자의 개수가 최소여야하므로 최대한 사탕을 담는것이 유리합니다. 가로 * 세로가 곧 사탕의 개수이므로 for lo..