본문 바로가기
반응형

Software Development/Leetcode33

릿코드 141 Linked List Cycle 문제 풀이 안녕하세요. 오늘은 파이썬을 이용해서 leetcode 문제를 풀어보겠습니다. 이번에 풀 문제는 주어진 링크드 리스트에 사이클이 있는지 판단하는 함수를 구현하는 문제입니다. 사이클이란 무엇일까요? 사이클이란 주어진 그래프가 한 점에서 출발해서 갔던 방향으로 오지 않고 다시 한 점으로 와지는 점이 있는 그래프의 특징입니다. 문제풀이 이번 문제는 아래와 같습니다. 천천히 읽어보시고 문제푸는 방법을 꼭 생각한 다음 풀이를 보시기 바랍니다. 현재 주어진 Input을 보겠습니다. head = [3,2,0,-4] 위의 경우 배열 같아 보이지만 사실 마지막 노드인 -4는 2를 가리키고 있습니다. 즉, ListNode(-4).next = 2이라는 겁니다. 그렇기 때문에 이 리스트는 순회할 경우 무한으로 순회하게 됩니다... 2023. 2. 8.
릿코드 19 Remove Nth Node From End of List 안녕하세요! 오늘은 릿코드 19번문제를 풀어보도록 하겠습니다. 오늘부터는 자바스크립트가 아닌 파이썬으로 문제를 풀 예정입니다. 바로 문제 설명으로 들어가도록 하겠습니다. 문제설명 링크드리스트가 들어왔을 때 끝에서 n번째 노드를 삭제하는 함수를 구현하는 문제입니다. Input: head = [1,2,3,4,5], n = 2 Output: [1,2,3,5] n 값이 2로 들어왔기 때문에 끝에서 두번째 인덱스에 있는 4를 지워서 1,2,3,5 가 되었습니다. 문제 접근을 어떻게 해야 할까요? 충분히 생각해 보시고 아래 풀이를 보시기 바랍니다. 문제풀이 저는 처음에 링크드리스트를 반대로 뒤집어서 푸는 방식을 생각했습니다. 제가 인터뷰 본 곳 중에서도 문제가 나온 경우가 있으니 혹시나 모르신다면 꼭 아래 글을 확.. 2023. 2. 6.
릿코드 21번 문제 Merge Two Sorted Lists 풀이 오늘은 leetcode 221 두 링크드 리스트를 병합하는 문제를 풀어보도록 하겠습니다. 문제설명 이 문제는 말 그대로 두 개의 리스트를 병합하는 문제입니다. 인자로 들어오는 두 개의 링크드 리스트는 각각 정렬되어 있고, 리턴 될 리스트도 병합, 정렬된 상태로 되어있어야 합니다. 아래 예시를 살펴보겠습니다. Input: list1 = [1,2,4], list2 = [1,3,4] Output: [1,1,2,3,4,4] 1, 2, 4, 1, 3, 4 를 순서대로 정렬할 시에 output과 같은 링크드 리스트가 나옵니다. 두 리스트가 들어올 시에 두 리스트의 각 값의 작은 값들을 순차적으로 새로운 리스트에 붙여나가면 될 듯합니다. 문제를 한번 풀어보겠습니다. 문제풀이 이번 문제는 코드부터 살펴보겠습니다. /*.. 2023. 2. 2.
릿코드 206번 문제 Reverse Linked List 오늘은 leetcode 206 리버스 링크드 리스트 문제를 자바스크립트로 풀어보겠습니다. 문제설명 이 문제는 Easy 난이도 중에서도 아주 중요한 문제로 인터뷰 문제로 자주 등장합니다. 링크드 리스트 하나를 받아 역순으로 만들어지는 링크드 리스트를 리턴하는 문제입니다. 먼저 링크드 리스트에 대해 간단히 살펴보겠습니다. // Definition for singly-linked list. function ListNode(val, next) { this.val = (val===undefined ? 0 : val) this.next = (next===undefined ? null : next) } Linked List 는 자료구조중 하나로 노드가 포인터에 의해 연결된 상태입니다. value와 next 두가지의 .. 2023. 2. 2.
릿코드 33번 문제 Search in Rotated Sorted Array 오늘 풀 문제는 leetcode 33번입니다. 문제설명 우리가 작성할 함수는 인자를 두개 받습니다. Rotated Sorted Array Target 구현해야하는 함수의 첫번째 인자는 배열으로 로테이트식으로 정렬된 상태로 들어옵니다. 가령, [0, 1, 2, 3], [3, 0, 1, 2], [2, 3, 0, 1], [1, 2, 3, 0]은 모두 Rotated Sorted Array입니다. 두번째 인자 타겟은 숫자입니다. 첫번째 인자로 들어오는 배열에서 두번째 인자를 가지고 있는 인덱스를 찾는 함수를 구현해야 하는 것이 릿코드 33번 문제 풀이라고 할 수 있습니다. 이 문제는 릿코드 153번 문제를 먼저 푸시고 푸신다면 이해가 좀 더 잘 되실 수도 있으니 링크 첨부합니다. 릿코드 153번 문제 풀이 릿코드.. 2023. 2. 1.
릿코드 153번 문제 Find Minimum in Rotated Sorted Array 풀이 오늘 하루도 잘 보내셨나요? 오늘 들고 온 문제는 릿코드 153번 문제인 배열에서 최소값 구하는 문제 입니다. 문제설명 예제 Input: nums = [3,4,5,1,2] Output: 1 Explanation: The original array was [1,2,3,4,5] rotated 3 times. 인자로 들어가는 nums 배열은 정렬된 원래 배열에서 오른쪽으로 n번 순서를 옮긴 배열입니다. 구현해야하는 함수 /** * @param {number[]}: nums * @return {number} */ var findMin = function(nums) { } 배열을 인자로 받아 최소값을 리턴합니다. 문제풀이 Binary Search 이용 이 문제는 릿코드에서 보시면 아시겠지만 시간복잡도를 O(log.. 2023. 1. 30.
반응형