프로그래머스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: ..
우아한테크코스라는 계기로 운좋게 당첨되어 우아콘에 다녀오게 되었다. 작년까지만 해도 우아콘이 있는지도 몰랐는데... 이번 2025 우아콘은 Delivering the Future라는 주제로 배달의민족 김범석 대표의 오프닝 키노트로 문을 열었다. 배민이 15주년을 맞아 2.0 리브랜딩을 하고 있다고 한다.다 벗겨진 `배` 아이콘은 이번 키노트에서 처음 봤는데 개인적으로 배달이가 더 귀여운것 같다... 첫 세션이면서 가장 기대했던 세션인 우테코 모바일 코치이기도 한 김수현님의 컴포즈 멀티플랫폼 세션은 솔직하게 컴포즈를 이제 막 입문한 입장에서 대부분을 이해하진 못했지만... 우테코 내부에서 실제 매일 사용하고 있는 출결 어플을 개발하기까지 왜 이 기술을 선택했고, 어떤 트러블 슈팅 과정을 거쳤는지에 관..
문제https://www.acmicpc.net/problem/1515 풀이234015가 입력으로 주어졌을 때 아래처럼1 2 3 4 5 6 7 8 9 10 11 12 13 14 15밑줄 그어진 수가 입력으로 주어진 남은 수,그렇지 않은게 다솜이가 지워린 수인것을 알 수 있고 마지막 값인 15가 정답이다. 최소인 마지막 값을 찾으려면1부터 1씩 증가시키면서 입력으로 주어진 수( 234015 )의 앞부터 지워나가면 된다. 순차적으로 생각하면 다음과 같다.1 -> 2340152 -> 234015, 2 삭제3 -> 34015, 3 삭제4 -> 4015, 4 삭제5 -> 0156 -> 0157 -> 0158 -> 0159 -> 01510 -> 015, 0 삭제11 -> 15, 1 삭제12 -> 513 ..
문제https://www.acmicpc.net/problem/1515 풀이234015가 입력으로 주어졌을 때 아래와 같이1 2 3 4 5 6 7 8 9 10 11 12 13 14 15밑줄 그어진 수가 남은 수, 그렇지 않은게 다솜이가 지워린 수인것을 알 수 있고 마지막 값인 15가 정답이다. 최소인 마지막 값을 찾으려면1부터 1씩 증가시키면서 입력으로 주어진 수( 234015 )의 앞부분부터 지워나가면 된다. 순차적으로 생각하면 다음과 같다.1 -> 2340152 -> 234015, 2 삭제3 -> 34015, 3 삭제4 -> 4015, 4 삭제5 -> 0156 -> 0157 -> 0158 -> 0159 -> 01510 -> 015, 0 삭제11 -> 15, 1 삭제12 -> 513 -> ..
문제https://www.acmicpc.net/problem/20920 풀이특정 길이 M 이상의 문자열을 입력받아 아래의 3가지의 조건으로 정렬하는것이 핵심이다. 1. 각 단어별 등장횟수를 기록해둔 숫자를 내림차순2. 등장 횟수가 같다면 단어의 길이로 내림차순3. 단어의 길이가 같다면 알파벳순 단어별 등장 횟수 기록은 아래와 같은 가변 map을 사용한다.val words = mutableMapOf() 이 map에 문자열과 그 등장 횟수를 저장하기 위해 아래와 같이 getOrDefault를 이용했다.words에 word라는 값이 존재하면 그 값을, 아니라면 0을 반환하게 된다.words.getOrDefault(word, 0) 따라서 처음 등장한다면 0을 그렇지 않다면 현재 몇번 등장했는지의 값을 얻어..