프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문자열의 각 알파벳을 정해진 거리 $n$만큼 밀어서 새로운 문자로 변환하는 암호화 로직을 구현하는 문제입니다. 아스키 코드의 수치 변환과 알파벳의 순환 구조를 처리하는 것이 핵심입니다.1. 나의 풀이 (Modular Approach)def solution(s, n): # 결과 값을 담을 리스트 초기화 (문자열 수정 불가 특성 고려) answer = [' '] * len(s) for i in range(len(s)): # 공백은 변환 없이 그대로 유지 if s[i] == ' ': continue ..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr2차원 행렬 arr1과 arr2를 입력받아 두 행렬을 곱한 결과를 반환하는 문제입니다. 행렬의 곱셈은 단순히 원소끼리 곱하는 것이 아니라, 앞 행렬의 행과 뒤 행렬의 열을 순차적으로 내적(Dot Product)해야 하므로 정확한 인덱스 제어가 관건입니다.1. 나의 풀이 (Modular Approach)행렬의 크기를 먼저 결정하고, 3중 반복문을 통해 각 칸에 들어갈 합산 값을 계산했습니다.def solution(arr1, arr2): row_len = len(arr1) col_len = len(arr2[0]) answer = [[0] * col_le..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr대기실 내 응시자 간 맨해튼 거리가 2 이하인지 확인하며, 파티션 설치 여부에 따른 예외 사례를 탐색 알고리즘으로 해결하는 문제입니다.1. 나의 풀이 (Modular Approach)room_size = 5def recursive_pos_check(board, visited, pos, depth): # 거리 2까지 탐색 완료 시 종료 if depth == 2: return True visited.append(pos) dr = [-1, 1, 0, 0] dc = [0, 0, -1, 1] for index in range..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr삼각 달팽이는 높이가 n인 삼각형 공간을 반시계 방향 나선형으로 채워나가는 문제입니다. 2차원 배열의 인덱스를 직접 제어하는 시뮬레이션 역량이 요구되며, 방향 전환 규칙을 코드로 구현하는 것이 핵심입니다.1. 나의 풀이 (Modular Approach)from itertools import chaindef write(board, start_pos, write_count, current_num, direction): """ 지정된 방향으로 정해진 횟수만큼 숫자를 기입합니다. """ row = start_pos[0] col = start_pos..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr행렬의 특정 영역 테두리를 시계 방향으로 회전시키고, 그 과정에서 이동한 숫자들 중 최솟값을 찾는 문제입니다. collections.deque 자료구조를 활용한 효율적인 회전과 실시간 최솟값 추적을 적용했습니다.1. 나의 풀이 (Modular Approach)기능별로 함수를 분리하고, deque를 도입하여 회전 로직의 가독성과 성능을 높였습니다. 한 줄이 길어질 수 있는 연산은 코드 블록으로 나누어 작성했습니다. from collections import dequedef rotate(board, point): # 0-인덱스 보정 row1, col1 = p..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 여러 직선의 방정식이 주어졌을 때, 모든 정수 교점을 찾아 이를 포함하는 최소 크기의 사각형 도화지에 별을 그리는 문제입니다. 좌표계의 특성과 정밀한 수치 연산이 핵심입니다.1. 나의 풀이 (Modular Approach)기능별로 함수를 분리하여 가독성을 높였습니다. 한 줄이 길어질 수 있는 연산은 변수를 활용해 코드 블록 형태로 나누어 작성했습니다.def get_cross_point(a, b, e, c, d, f): # 분모 계산을 통한 평행 여부 확인 denominator = a * d - b * c if denominator == 0: ..