프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr주어진 숫자 카드들을 조합하여 만들 수 있는 모든 수 중에서 소수가 몇 개인지를 찾는 문제입니다. 순열을 생성하는 완전 탐색 기법과 효율적인 소수 판별 알고리즘을 결합하여 해결할 수 있습니다.1. 나의 풀이 from itertools import permutationsdef is_prime(num): # 2 미만의 숫자는 소수가 아닙니다. if num 2. 오늘 배운 점 및 복기 노트제곱근 \( \sqrt{n} \) 까지만 약수를 확인하는 이유어떤 수 \( n \) 이 \( a \times b \) 로 이루어져 있다면, \( a \) 와 \( b \) ..
프로그래머스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전화번호의 뒷 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삼각 달팽이는 높이가 n인 삼각형 공간을 반시계 방향 나선형으로 채워나가는 문제입니다. 2차원 배열의 인덱스를 직접 제어하는 시뮬레이션 역량이 요구되며, 방향 전환 규칙을 코드로 구현하는 것이 핵심입니다.1. 나의 풀이from itertools import chaindef write(board, start_pos, write_count, current_num, direction): """ 지정된 방향으로 정해진 횟수만큼 숫자를 기입합니다. """ row = start_pos[0] col = start_pos[1] for _ in..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr행렬의 특정 영역 테두리를 시계 방향으로 회전시키고, 그 과정에서 이동한 숫자들 중 최솟값을 찾는 문제입니다. collections.deque 자료구조를 활용한 효율적인 회전과 실시간 최솟값 추적을 적용했습니다.1. 나의 풀이기능별로 함수를 분리하고, deque를 도입하여 회전 로직의 가독성과 성능을 높였습니다. 한 줄이 길어질 수 있는 연산은 코드 블록으로 나누어 작성했습니다. from collections import dequedef rotate(board, point): # 0-인덱스 보정 row1, col1 = point[0] - 1, point[..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 여러 직선의 방정식이 주어졌을 때, 모든 정수 교점을 찾아 이를 포함하는 최소 크기의 사각형 도화지에 별을 그리는 문제입니다. 좌표계의 특성과 정밀한 수치 연산이 핵심입니다.1. 나의 풀이 기능별로 함수를 분리하여 가독성을 높였습니다. 한 줄이 길어질 수 있는 연산은 변수를 활용해 코드 블록 형태로 나누어 작성했습니다.def get_cross_point(a, b, e, c, d, f): # 분모 계산을 통한 평행 여부 확인 denominator = a * d - b * c if denominator == 0: return None ..