프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 조카가 발음할 수 있는 네 가지 단어의 조합으로 이루어진 문자열을 찾는 문제입니다. 단, 동일한 발음이 연속으로 나오는 경우는 발음할 수 없다는 제약 조건을 정규표현식으로 정밀하게 필터링하는 것이 핵심입니다.1. 나의 풀이허용된 단어들로만 구성되었는지 확인하는 패턴과 연속된 발음을 찾아내는 패턴을 분리하여 구현했습니다. import redef solution(babbling): answer = 0 # 조카가 발음할 수 있는 단어들이 1번 이상 반복되는지 확인하는 패턴 pattern1 = re.compile(r"(aya|ye|woo|ma)+") ..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 다트 게임의 점수 계산 로직을 구현하는 문제로, 문자열에 섞여 있는 점수, 보너스, 옵션을 정확히 분리하여 3번의 기회에 대한 점수를 합산해야 합니다. 정규표현식을 활용한 패턴 추출과 리스트 슬라이싱을 이용한 조건부 점수 처리가 핵심입니다.1. 나의 풀이정규표현식의 그룹 캡처 기능을 사용하여 데이터를 분리하고, 리스트 슬라이싱을 활용해 스타상(*)의 예외 처리를 간결하게 구현했습니다. import redef solution(dartResult): # 점수(\d+), 보너스([SDT]), 옵션([*#]?)을 각각 그룹으로 묶어 추출합니다. # 옵션 뒤의 ..
코딩테스트 연습 - [3차] 파일명 정렬알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려school.programmers.co.kr파일명 리스트를 HEAD, NUMBER, TAIL 세 부분으로 분리하고, 대소문자를 구분하지 않는 문자열 정렬과 숫자 크기 정렬을 조합하여 수행하는 문제입니다. 정규표현식의 그룹 캡처 기능을 활용하면 복잡한 분기문 없이도 데이터를 정밀하게 분리할 수 있습니다.1. 나의 풀이정규표현식을 미리 컴파일하여 성능을 최적화하고, re.match를 통해 문자열의 시작부터 패턴을 분석하여 데이터를 추출했습니다.import redef solution(f..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 별표(*)로 마스킹하는 문제입니다. 문자열 슬라이싱을 이용한 기본적인 풀이와 정규표현식의 전방 탐색을 활용한 심화 풀이를 정리했습니다.1. 나의 풀이def solution(phone_number): # 전체 길이에서 4를 뺀 만큼 *을 생성하고 뒷 4자리 슬라이싱 결과와 합칩니다. return '*' * (len(phone_number) - 4) + phone_number[-4:]2. 오늘 배운 점 및 복기 노트긍정형 전방 탐색(Positive Lookahead)의 활용정규표현식에서 (?=X) 형태의 전..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 주어진 문자열의 길이가 4 또는 6인지 확인하고, 모든 문자가 숫자로만 구성되어 있는지 판별하는 문제입니다. 파이썬의 내장 메서드를 활용하는 방법과 정규표현식을 활용하는 방법 두 가지로 해결할 수 있습니다.1. 나의 풀이정규표현식을 활용한 풀이import redef solution(s): # 문자열 전체가 숫자 4자 혹은 6자인지 검사 return bool(re.fullmatch(r"\d{4}|\d{6}", s)) 내장 메서드를 활용한 풀이def solution(s): # 길이를 먼저 확인하고 숫자로만 구성되었는지 검사 if (len(s) =..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr카카오 서비스에 가입하는 유저들의 아이디가 규칙에 맞지 않을 때, 7단계의 순차적인 처리 과정을 거쳐 추천 아이디를 생성하는 문제입니다. 문자열 필터링, 특정 패턴의 치환, 길이 제한 및 예외 상황 처리가 주요 핵심입니다.1. 나의 풀이def solution(new_id): # 1단계: 소문자로 변환 lower_id = list(new_id.lower()) new_id = [] # 2단계 & 3단계: 허용된 문자 필터링 및 연속 마침표 처리 for char in lower_id: # 알파벳, 숫자, -, _, . 이 아니..