본문 바로가기

코딩테스트/프로그래머스30

프로그래머스 | 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.
프로그래머스 | 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 | stack, 자료구조 | 햄버거 만들기 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이 문제는 스택을 활용하여 연속된 패턴을 찾아내고 이를 제거하면서 햄버거의 개수를 세는 문제입니다. 핵심은 "빵-야채-고기-빵"이라는 정해진 패턴을 빠르게 감지하고 처리하는 것입니다.코드def solution(ingredient): stack = [] answer = 0 target = [1, 2, 3, 1] # 햄버거 패턴 for item in ingredient: stack.append(item) # 스.. 2025. 2. 27.