Easy 난이도
Problem 1: Best Time to Buy and Sell Stock II (LeetCode 122)
설명: 주어진 주식 가격 배열에서 여러 번의 거래를 통해 얻을 수 있는 최대 이익을 계산합니다.
핵심 개념: 그리디 알고리즘, 주식 거래.
링크: LeetCode 122
Problem 2: Assign Cookies (LeetCode 455)
설명: 아이들에게 쿠키를 나눠줄 때, 최대한 많은 아이들이 만족하도록 쿠키를 분배합니다.
핵심 개념: 그리디 알고리즘, 정렬.
링크: LeetCode 455
Problem 3: Lemonade Change (LeetCode 860)
설명: 레모네이드 가게에서 각 손님에게 거스름돈을 줄 수 있는지 확인하는 문제입니다.
핵핵심 개념: 그리디 알고리즘, 거스름돈 문제.
링크: LeetCode 860
Problem 4: Two City Scheduling (LeetCode 1029)
설명: 사람들을 두 도시로 보내는 비용을 최소화하는 방법을 찾는 문제입니다.
핵심 개념: 그리디 알고리즘, 비용 최소화.
링크: LeetCode 1029
Problem 5: Minimum Cost to Move Chips to The Same Position (LeetCode 1217)
설명: 칩을 같은 위치로 이동시키는 데 드는 최소 비용을 계산하는 문제입니다.
핵심 개념: 그리디 알고리즘, 수학적 접근.
링크: LeetCode 1217
Problem 6: Maximum Subarray (LeetCode 53)
설명: 주어진 정수 배열에서 연속된 부분 배열의 합이 최대가 되는 값을 찾는 문제입니다.
핵심 개념: 그리디 알고리즘, 동적 계획법.
링크: LeetCode 53
Problem 7: Can Place Flowers (LeetCode 605)
설명: 꽃을 심을 수 있는 화단 배열에서 주어진 수의 꽃을 심을 수 있는지 확인하는 문제입니다.
핵심 개념: 그리디 알고리즘, 배열 탐색.
링크: LeetCode 605
Problem 8: Is Subsequence (LeetCode 392)
설명: 문자열 s가 문자열 t의 부분 수열인지 확인하는 문제입니다.
핵심 개념: 그리디 알고리즘, 문자열 탐색.
링크: LeetCode 392
Problem 9: Minimum Moves to Equal Array Elements (LeetCode 453)
설명: 배열의 모든 요소를 같게 만들기 위해 필요한 최소 이동 횟수를 계산하는 문제입니다.
핵심 개념: 그리디 알고리즘, 수학적 접근.
링크: LeetCode 453
Problem 10: Valid Parenthesis String (LeetCode 678)
설명: 주어진 괄호 문자열이 유효한지 확인하는 문제로, '*' 문자는 '(' 또는 ')' 또는 빈 문자열로 간주될 수 있습니다.
핵심 개념: 그리디 알고리즘, 스택.
링크: LeetCode 678
Problem 11: Meeting Rooms (LeetCode 252)
설명: 주어진 회의 일정이 겹치지 않도록 배정할 수 있는지 확인합니다.
핵심 개념: 그리디 알고리즘, 정렬.
링크: LeetCode 252
Problem 12: Largest Perimeter Triangle (LeetCode 976)
설명: 주어진 배열에서 세 숫자를 사용해 만들 수 있는 가장 큰 삼각형의 둘레를 계산합니다.
핵심 개념: 그리디 알고리즘, 정렬.
링크: LeetCode 976
Problem 13: Walking Robot Simulation (LeetCode 874)
설명: 로봇이 주어진 명령에 따라 움직이며, 최대 거리를 계산하는 문제입니다.
핵심 개념: 그리디 알고리즘, 시뮬레이션.
링크: LeetCode 874
Problem 14: Candy (LeetCode 135)
설명: 각 학생에게 최소한의 사탕을 주되, 조건에 따라 배분해야 하는 문제입니다.
핵심 개념: 그리디 알고리즘, 배열 탐색.
링크: LeetCode 135
Problem 15: Merge Sorted Array (LeetCode 88)
설명: 두 정렬된 배열을 병합하는 문제입니다.
핵심 개념: 그리디 알고리즘, 병합.
링크: LeetCode 88
Problem 16: Boats to Save People (LeetCode 881)
설명: 주어진 사람들을 보트에 태워 구출하는 데 필요한 최소 보트 수를 계산합니다.
핵심 개념: 그리디 알고리즘, 정렬.
링크: LeetCode 881
Problem 17: Maximize Sum Of Array After K Negations (LeetCode 1005)
설명: 배열의 요소를 최대 K번 부호를 바꿔 합을 최대로 만듭니다.
핵심 개념: 그리디 알고리즘, 정렬.
링크: LeetCode 1005
Problem 18: Min Cost Climbing Stairs (LeetCode 746)
설명: 계단을 오르는 데 드는 최소 비용을 계산합니다.
핵심 개념: 그리디 알고리즘, 동적 계획법.
링크: LeetCode 746
Problem 19: Queue Reconstruction by Height (LeetCode 406)
설명: 주어진 사람들의 키와 대기열 조건에 따라 대기열을 재구성합니다.
핵심 개념: 그리디 알고리즘, 정렬.
링크: LeetCode 406
Problem 20: Wiggle Subsequence (LeetCode 376)
설명: 주어진 배열에서 인접한 수들의 차이가 교대로 증가와 감소하는 가장 긴 부분 수열의 길이를 계산합니다.
핵심 개념: 그리디 알고리즘, 동적 계획법.
링크: LeetCode 376
Medium 난이도
Problem 21: Jump Game (LeetCode 55)
설명: 주어진 배열에서 각 위치의 값만큼 점프할 수 있을 때, 배열의 끝에 도달할 수 있는지 확인하는 문제입니다.
핵심 개념: 그리디 알고리즘, 배열 탐색.
링크: LeetCode 55
Problem 22: Gas Station (LeetCode 134)
설명: 원형 도로를 따라 주유소가 있을 때, 모든 주유소를 방문할 수 있는 출발점을 찾는 문제입니다.
핵심 개념: 그리디 알고리즘, 순환 배열.
링크: LeetCode 134
Problem 23: Partition Labels (LeetCode 763)
설명: 문자열을 분할하여 각 문자가 하나의 파티션에만 포함되도록 하는 문제입니다.
핵심 개념: 그리디 알고리즘, 문자열 분할.
링크: LeetCode 763
Problem 24: Task Scheduler (LeetCode 621)
설명: 주어진 작업들과 냉각 시간에 따라 작업을 스케줄링하여 최소 시간을 계산하는 문제입니다.
핵심 개념: 그리디 알고리즘, 우선순위 큐.
링크: LeetCode 621
Problem 25: Non-overlapping Intervals (LeetCode 435)
설명: 주어진 구간들 중에서 겹치지 않도록 제거해야 하는 최소 구간의 수를 찾는 문제입니다.
핵심 개념: 그리디 알고리즘, 구간 스케줄링.
링크: [LeetCode 435](https://leetcode.com/problems/non-overlapping-interval
Problem 26: Car Pooling (LeetCode 1094)
설명: 주어진 승차 요청들을 처리하며 차량의 용량을 초과하지 않는지 확인합니다.
핵심 개념: 그리디 알고리즘, 스위핑.
링크: LeetCode 1094
Problem 27: Valid Parenthesis String (LeetCode 678)
설명: 괄호 문자열이 유효한지 확인하며, '*'는 빈 문자열, '(' 또는 ')'로 간주될 수 있습니다.
핵심 개념: 그리디 알고리즘, 스택.
링크: LeetCode 678
Problem 28: Score of Parentheses (LeetCode 856)
설명: 올바른 괄호 문자열의 점수를 계산합니다.
핵심 개념: 그리디 알고리즘, 스택.
링크: LeetCode 856
Problem 29: Minimum Number of Arrows to Burst Balloons (LeetCode 452)
설명: 주어진 풍선을 터뜨리기 위한 최소 화살 수를 계산합니다.
핵심 개념: 그리디 알고리즘, 구간 스케줄링.
링크: LeetCode 452
Problem 30: Minimum Operations to Make Array Equal (LeetCode 1551)
설명: 배열의 요소를 동일하게 만들기 위해 필요한 최소 연산 횟수를 계산합니다.
핵심 개념: 그리디 알고리즘, 수학적 접근.
링크: LeetCode 1551
Problem 31: Meeting Rooms II (LeetCode 253)
설명: 필요한 최소 회의실 수를 계산합니다.
핵심 개념: 그리디 알고리즘, 스위핑, 정렬.
링크: LeetCode 253
Problem 32: Candy (LeetCode 135)
설명: 학생들에게 공정하게 사탕을 나눠주는 최소 수를 계산합니다.
핵심 개념: 그리디 알고리즘, 배열 탐색.
링크: LeetCode 135
Problem 33: Largest Number (LeetCode 179)
설명: 주어진 정수를 배열로 취급하여 가장 큰 숫자를 만드는 문제입니다.
핵심 개념: 그리디 알고리즘, 정렬.
링크: LeetCode 179
Problem 34: Monotone Increasing Digits (LeetCode 738)
설명: 주어진 숫자의 각 자리가 증가하는 숫자 중 가장 큰 숫자를 찾습니다.
핵심 개념: 그리디 알고리즘, 수학적 접근.
링크: LeetCode 738
Problem 35: Remove K Digits (LeetCode 402)
설명: 주어진 숫자에서 K개의 숫자를 제거하여 가장 작은 숫자를 만드는 문제입니다.
핵심 개념: 그리디 알고리즘, 스택.
링크: LeetCode 402
'Coding Test > 알고리즘 이론' 카테고리의 다른 글
최소신장트리-easy (25문제) (1) | 2025.01.04 |
---|---|
"최소 비용 신장 트리(Minimum Spanning Tree: MST)"를 찾는 방법 (0) | 2025.01.04 |
Fractional Knapsack 및 유사 문제들 (5문제) (0) | 2025.01.03 |
트리+그래프+DP 심화 (릿코드12문제) (1) | 2025.01.03 |
DP다이나믹프로그래밍-30문제 (0) | 2025.01.03 |