코딩테스트 연습 - [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: # 알파벳, 숫자, -, _, . 이 아니..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문자열 s가 "1"이 될 때까지 0을 제거하고, 남은 문자열의 길이를 다시 2진법으로 변환하는 과정을 반복하는 문제입니다. 변환 횟수와 제거된 0의 총 개수를 구하는 것이 목적입니다.1. 나의 풀이 문제에서 정의한 '이진 변환'을 루프 내에서 구현하여 최종 결과값을 도출했습니다.def solution(s): # [변환 횟수, 제거된 0의 개수] answer = [0, 0] while s != "1": # 1. 현재 문자열에서 0의 개수를 카운트하여 누적 zero_count = s.count("0") ans..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr10진법 수를 3진법으로 변환한 뒤 이를 반전시키고, 다시 10진법으로 변환하는 문제입니다. base_change라는 범용적인 진법 변환 함수를 유지하면서 파이썬의 내장 기능을 활용하여 가독성과 효율성을 높였습니다.1. 나의 풀이진법 변환이라는 고유의 기능을 수행하는 함수와 문제의 요구사항에 맞춰 반전 및 재변환을 수행하는 함수로 나누어 구현했습니다.def base_change(num, base): # 0일 경우 문자열 '0' 반환하여 int() 함수와의 일관성 유지 if num == 0: return "0" nums = [] ..