본문 바로가기

greedy4

프로그래머스 | Python | Greedy | [PCCE 기출문제] 9번 / 지폐 접기 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/340199 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 해설 및 풀이문제 이해목표: 주어진 지갑 크기(wallet)에 지폐(bill)를 넣기 위해 지폐를 접어야 하는 최소 횟수를 구하는 것.접기 규칙:지폐의 긴 쪽을 반으로 접습니다.접은 결과 소수점 이하는 버립니다 (// 연산).지갑에 넣을 수 있으면 멈춥니다.종료 조건:지폐의 가로와 세로 중 작은 값이 지갑의 가로/세로 중 작은 값보다 작거나 같고,지폐의 가로와 세로 중 큰 값이 지갑의 가로/세로 중 큰 값보다 작거나 같을 때.핵심 알고리즘.. 2025. 3. 13.
프로그래머스 | Python | Greedy | 문자열 나누기 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 풀이: 문자열 나누기문제를 해결하기 위해 문자열을 차례로 탐색하면서 규칙에 따라 분리합니다.규칙은 다음과 같습니다:첫 글자를 기준으로 그룹화:  첫 글자를 x로 설정.  x의 등장 횟수와 x가 아닌 글자의 등장 횟수를 셈.횟수 비교:  x와 x가 아닌 글자의 등장 횟수가 같아질 때 문자열을 분리.남은 문자열 반복:  분리한 문자열을 제거하고, 남은 부분에 대해 동일한 작업을 수행.남은 문자열 처리:  더 이상 읽을 글자가 없거나 횟수가 .. 2025. 3. 2.
프로그래머스 | Python | 그리디 | 체육복 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr체육복 문제는 탐욕법(Greedy) 알고리즘을 이용하여 해결할 수 있습니다. 탐욕법은 매 단계에서 최적의 선택을 하여 전체 최적해를 구하는 방법입니다. 이 문제에서는 체육복을 빌려줄 수 있는 조건에 따라 최대한 많은 학생이 체육 수업을 들을 수 있도록 해야 합니다.접근 방식중복 처리:  reserve와 lost에 동시에 포함된 학생은 체육복이 1개 남아있으므로, 이들을 reserve와 lost에서 제거합니다.빌려줄 수 있는 조건 확인:  체육복을.. 2025. 2. 27.
프로그래머스 | Python | BruteForce, Greedy | 공원 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/340198 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr def solution(mats, park): H, W = len(park), len(park[0]) # 공원의 크기 mats.sort(reverse=True) # 가장 큰 돗자리부터 탐색 # 특정 위치에서 k x k 크기의 돗자리를 놓을 수 있는지 확인하는 함수 def can_place(r, c, k): if r + k > H or c + k > W: # 돗자리가 공원을 벗어나면 불가능 .. 2025. 2. 12.