목록전체 글 (5)
노-트
Minimum Moves to Make Array Complementary - LeetCodeCan you solve this real interview question? Minimum Moves to Make Array Complementary - You are given an integer array nums of even length n and an integer limit. In one move, you can replace any integer from nums with another integer between 1 and limit, leetcode.com 우리는 살면서 불편하게 느껴지면 그 대상이 잘못되었다는 생각을 하기 쉽다.그러나 때로는 위의 사진처럼 본인의 자세가 잘못되지 않았나 하..
코딩테스트 기출 문제 설명: 포탑 부수기 | 코드트리코딩테스트 기출 문제 포탑 부수기의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.ai Key Idea최단 경로 탐색만 정확히 구현할 수 있다면, 전체 구현 자체는 비교적 정직한 시뮬레이션 문제라고 생각한다.문제를 해결하는 과정에서는 먼저 시스템의 Invariant를 정의한 뒤, 이를 기반으로 Controller → Service → Repository 순으로 레이어를 분리하며 설계와 구현을 진행하였다. 각 레이어는 자신의 추상화 수준에 맞는 책임만 가지도록 구성하였으며, 현재 레이어에서 다루기 적절하지 않은 정보나 로직이 필요한 경우에는 하위 컴포넌트에 책임을 위임하여 추상화 일관성을 유지하..
코딩테스트 기출 문제 해설: 루돌프의 반란 | 코드트리코딩테스트 기출 문제 루돌프의 반란의 상세 해설과 예시 코드를 제공합니다. 다양한 접근 방식과 최적화 전략을 학습하세요.www.codetree.ai Key Idea 이 문제의 핵심은 엔티티 간의 상호작용으로 인한 효과를 코드로 구현할 수 있는가,그리고 레이어별 책임 분리를 적절하게 설계하여 구현 과정의 인지 부담을 낮출 수 있느냐 라고 생각한다. 이 문제의 경우는 일반적인 삼성 기출 문제들과 달리 board 배열이 입력에 주어지지 않는다. 이 점에서 설계 과정중 내부적으로 board 배열을 관리해야 하는지의 필요성 여부를 고민해 보았다. board 배열이 필요한 본질적 이유는 엔티티가 움직인 위치에 다른 엔티티가 있는지를 파악하기 위함이다.이 문제의 ..
코딩테스트 기출 문제 설명: 왕실의 기사 대결 | 코드트리코딩테스트 기출 문제 왕실의 기사 대결의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.www.codetree.ai Key Idea이 문제의 핵심은 연쇄적으로 전파되는 상태 변화를 정확히 모델링할 수 있는지, 그리고 특정 기능들을 수행할 때 특정 상황에서는 무효화시키는 책임을 어느 계층이 갖도록 설계할 수 있는지에 있다고 생각한다. 문제 풀이는 하향식으로 진행하였으며, 문제를 이해한 뒤 Invariant를 설계한 뒤 상위 컴포넌트부터 하위 컴포넌트로 구체화해 나갔다. Invariant 설계, 레이어 구성 설명에 이어 세부 컴포넌트들을 설명하겠다. Invariant1. 한번 입력 받은 board는 절대 수정되지 ..
Key Idea이 문제는 어려운 알고리즘이 아니라 상태를 정확하게 다루는 구현력을 요구하는 문제이다.회전 단계에서는 3x3 격자의 중심점을 기준으로 상대 좌표를 구하여 회전된 이후의 상태를 갱신하여야 하고,유물 획득 단계에서는 같은 종류의 유물 조각들을 BFS/DFS를 이용하여 connected_component를 구할 수 있어야 했다. 처음에는 회전 단계에서 회전 중심을 원점으로 착각하는 실수를 했다.하지만 이 문제에서는 원점 중심 회전이 아니라, 3x3 격자의 중앙을 회전 중심으로 삼으므로, 이 중앙점을 기준으로 한 상대 좌표를 적용하여야 한다. 코딩테스트 기출 문제 설명: 고대 문명 유적 탐사 | 코드트리코딩테스트 기출 문제 고대 문명 유적 탐사의 상세 설명입니다. 문제 요구사항을 정확히 파악하고..