전체 글(86)
-
141. Linked List Cycle
https://leetcode.com/problems/linked-list-cycle/ Linked List Cycle - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 연결리스트에서 cycle이 존재하는지 판별하는 문제. 1. 문제 이해 => Given head, the head of a linked list, determine if the linked list has a cycle in it. (문제의 요구사항. head노드가 주어지면, 연결리스트가 cycl..
2021.06.17 -
707. Design Linked List - 연결리스트 기본 구현 문제
https://leetcode.com/problems/design-linked-list/ Design Linked List - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 말 그대로 단순 연결 리스트를 구현하는 문제. 중간 중간에 처리해야할 경우의 수도 많아서, 애를 먹었다. 이 코드는 더미 노드를 쓰지는 않았는데, 추후 더미 노드를 사용하는 방법 또한 고려해봐야 할 듯? struct Node { int val; Node *next; Node () : val(..
2021.06.17 -
941. Valid Mountain Array
https://leetcode.com/problems/valid-mountain-array/ Valid Mountain Array - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 해결 6단계 1. 문제를 읽고 이해한다. Given an array of integers arr, return true if and only if it is a valid mountain array. => 정수의 배열이 주어지고, mountain array일 시 true, 그렇지..
2021.06.06 -
2. Add Two Numbers
https://leetcode.com/problems/add-two-numbers/ Add Two Numbers - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 두 연결 리스트의 각 노드 숫자를 합하여, 새 노드를 만들어 리턴하는 문제. 해결하는데 생각보다 시간이 많이 걸렸다. 문제 해결 6단계 1. 문제를 읽고 이해한다. => You are given two non-empty linked lists representing two non-negative int..
2021.06.04 -
2. 문제 해결 전략
직관성 + 체계적인 접근. 직관성 가장 중요한 것. 문제와 답의 구조에 대한 직관성. 답안의 전체적인 모습을 직관적으로 머릿속에 그릴 수 있는게 가장 좋음. but 이게 안될 시 체계적인 접근이 필요함. 체계적인 접근 직관이 통하지 않을 때(문제를 봐도 모르겠을 때), 백지에서부터 시작해 문제를 해결하기 위한 기반을 차근차근 쌓아올리면서 점진적으로 전진하는 것을 의미. 체계적인 접근을 위한 질문들 1. 비슷한 문제를 풀어본 적이 있던가? 형태가 비슷하거나 관련된 문제를 풀어본 적이 있다면, 이전에 접근했던 방법과 비슷하게 접근할 수 있음. 기존에 접근했던 방식이 온전히 경험이 되려면, 그 동작 과정과 원리를 완전히 파악해야함. 예제) 합친 LIS, 신호 라우팅, 음주 운전 단속, 선거 공약 2. 단순한 ..
2021.06.03 -
1. 문제 해결 과정의 여섯 단계
실력을 기르기 위해선 문제 해결 과정을 여러 부분으로 나눠보고, 각 과정에서 잘하고 있는지 못하고 있는지 피드백을 해야 한다. 1. 문제를 읽고 이해한다. 2. 문제를 익숙한 용어로 재정의한다. 3. 어떻게 해결할지 계획을 세운다. 4. 계획을 검증한다. 5. 프로그램으로 구현한다. 6. 어떻게 풀었는지 되돌아보고, 개선할 방법이 있는지 찾아본다. 1단계) 문제를 읽고 이해하기. 문제 설명을 공격적으로 읽고, 문제가 원하는 바를 완전히 이해하라. 또한 사소한 제약 조건을 주의하라. 2단계) 재정의와 추상화. 문제를 자신의 언어로 풀어 써라. 문제를 추상화하여, 자신이 다루기 쉬운 수학적/공학적 개념으로 옮겨 표현하라. 3단계) 계획 세우기. 문제를 어떤 방식으로 해결할지 결정하고,..
2021.06.02