본문 바로가기

코딩테스트35

프로그래머스 | 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 | 단순구현 | [1차] 다트 게임 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/17682 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 분석다트 게임의 점수를 계산하는 문제입니다. 문자열로 주어진 다트 게임 결과를 해석하여, 세 번의 기회에서 얻은 점수를 합산합니다.주요 구성점수: 0 ~ 10 (숫자)보너스: S, D, T (1제곱, 2제곱, 3제곱)옵션: *, # (스타상, 아차상)규칙*은 현재 점수와 이전 점수를 2배로 만듦.#은 현재 점수를 -1배로 만듦.점수와 보너스는 필수, 옵션은 선택적.핵심 포인트문자열 파싱: 정규 표현식이나 반복문을 이용하여 문자열을 세트별로 .. 2025. 3. 12.
프로그래머스 | Python | 단순구현 | 로또의 최고 순위와 최저 순위 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 설명 및 접근 방법로또의 최고 순위와 최저 순위를 구하는 문제입니다.알아볼 수 없는 번호(0)가 있는 로또 번호가 주어질 때, 가능한 최고 순위와 최저 순위를 구합니다.핵심 접근 방법최저 순위:  lottos와 win_nums의 교집합의 크기(match)를 구합니다.  이 값은 0을 제외하고 일치하는 숫자의 개수를 나타냅니다.최고 순위:  최저 순위의 match에 lottos에서의 0의 개수(zeros)를 더한 값이 됩니다.  0은 어떤 숫.. 2025. 3. 12.
프로그래머스 | Python | DP:테뷸레이션 | 등굣길 (Lv.3) https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr📌 문제 분석이 문제는 격자(Grid)에서 최단 경로 개수를 찾는 테뷸레이션(Tabulation, Bottom-Up 방식)을 사용하는 동적 계획법(DP) 문제입니다.특정 위치(집)에서 출발하여 목표 위치(학교)까지 이동하는 경우의 수를 구해야 합니다.✅ 핵심 요소:격자 이동: 오른쪽과 아래쪽으로만 이동 가능장애물 고려: 물웅덩이(puddles)가 있는 경우 해당 위치로 이동 불가MOD 연산: 결과가 매우 클 수 있으므로 1,000,000,007.. 2025. 3. 4.
프로그래머스 | Python | DP:테뷸레이션 | 거스름돈 (Lv.3) https://school.programmers.co.kr/learn/courses/30/lessons/12907 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이 문제는 동전으로 특정 금액을 만드는 방법의 수를 구하는 문제이며, 동적 계획법(Dynamic Programming, DP)을 사용하여 해결할 수 있습니다.📌 문제 분석n: 거슬러 줘야 할 총 금액.money: 사용할 수 있는 동전의 종류 리스트.목표: n원을 만들 수 있는 방법의 수를 찾는 것.단, 정답이 커질 수 있으므로 1,000,000,007로 나눈 나머지를 반환해야 합니다.📌 핵심 알고리즘 - 동적 계획법(DP:테뷸레이션(Bott.. 2025. 3. 3.
프로그래머스 | Python | 완전탐색 | 피로도 (Lv.2) https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 해결: 완전탐색을 통한 던전 탐험Python 코드from itertools import permutationsdef solution(k, dungeons): max_dungeons = 0 # 던전 순서의 모든 경우의 수를 생성 for order in permutations(dungeons, len(dungeons)): current_k = k # 현재 피로도 count = 0 # 탐험 가능.. 2025. 3. 2.