본문 바로가기

프로그래머스-python-lv.118

프로그래머스 | 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 | 단순구현 | 로또의 최고 순위와 최저 순위 (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 | 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/155652 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 코드def solution(s, skip, index): answer = '' # 1. 사용 가능한 알파벳 리스트 생성 alphabets = [chr(i) for i in range(ord('a'), ord('z') + 1)] # 알파벳 a-z available = [char for char in alphabets if char not in skip] # skip 제외 # 2. 각 문자 변환 for char.. 2025. 2. 27.
프로그래머스 | Python | Hash, Greedy | 대충 만든 자판 (Lv.1) 코드def solution(keymap, targets): # 키맵에서 각 문자 최소 누르기 횟수를 저장 char_to_min_press = {} for key in keymap: for idx, char in enumerate(key): if char in char_to_min_press: char_to_min_press[char] = min(char_to_min_press[char], idx + 1) else: char_to_min_press[char] = idx + 1 # 결과를 저장할 리스트 result = [] for target in targets: .. 2025. 2. 27.
프로그래머스 | Python | Brute Froce | [PCCE 기출문제] 9번 / 이웃한 칸 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/250125 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 풀이이 문제는 2차원 배열(격자)에서 특정 위치의 상하좌우 칸을 탐색하여 동일한 색상의 개수를 계산하는 문제입니다. 인접 탐색과 조건 검사가 핵심입니다.Python 코드def solution(board, h, w): # 보드의 크기 n = len(board) # 결과를 저장할 변수 count = 0 # 상하좌우 이동 좌표 dh = [0, 1, -1, 0] # 행 변화량 dw = [1, 0, 0, -1.. 2025. 2. 27.