[알고리즘] LeetCode Reverse Linked List JS
2022. 12. 4. 11:38
알고리즘
개요 주어진 연결리스트를 뒤집어 리턴하는 문제이다. Reverse 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 풀이 이전 노드의 정보와 다음 노드의 정보를 저장해두면 쉽게 문제를 해결할 수 있다. 그런데 문제는 잘 풀어놓고 엉뚱한 곳에서 삽질을 했는데 노드의 위치를 리턴하는 부분이었다. 당연히 node가 가리키는 부분을 리턴했었다. 그런데 마지막 연결리스트의 tail까지 탐색하기 위해선 node가 null이 될때까지 탐색하기 때문에 n..
[알고리즘] LeetCode Ransom Note JS
2022. 12. 3. 19:50
알고리즘
개요 ransomNote라는 문자열과 magazine이라는 문자열이 주어지는데 이때 ransomNote가 magazine에 포함되어있는지를 확인해보는 문제이다. Ransom Note - 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 풀이 단순히 includes로 돌려볼 수도 있겠지만 그렇게한다면 ransomNote가 따로 떨어져있을 경우를 찾지 못한다. 따라서 HashMap을 사용하였고 쉽게 풀어낼 수 있었다 /** * @param {string} ransomN..
[알고리즘] LeetCode First Bad Version JS
2022. 12. 3. 17:59
알고리즘
개요 이렇게 주어지는 문제는 처음이었는데 함수를 전달받고 함수에 버전을 넣으면 bad version인지 아닌지 알려준다. 이를 통헤서 제일 처음 bad version을 찾는 문제이다 First Bad Version - 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 풀이 투 포인터로 접근을 했었고 그림으로 그려봤을 때 분기 조건으로는 다음과 같았다. 1 2 3 4 5 false false false true true 첫 번째 true가 나오는 조건을 찾는게 문제이..
[알고리즘] LeetCode Linked List Cycle JS
2022. 12. 2. 22:10
알고리즘
개요 연결리스트의 맨 마지막이 노드와 연결되어있는지, 즉 원형 연결 리스트인지 확인하는 문제이다. 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 풀이 /** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} head * @return {boo..
[알고리즘] LeetCode Balanced Binary Tree JS
2022. 12. 2. 21:23
알고리즘
개요 주어진 이진 트리가 균형 이진 트리인지 확인하는 문제이다 Balanced Binary Tree - 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 풀이 균형이진트리가 뭐였는지 헷갈려서 정리를 간단히 해보았다. 우선 단순한 이진트리는 아래와 같다 하지만 트리 중에서 한쪽으로 치우쳐진 트리들이 있는데 편향 이진 트리라고도 하며 만약 탐색한다고 할때 트리의 장점을 살리지 못하고 모든 노드를 방문해야한다는 문제가 생긴다. 따라서 균형 이진 트리라고해서 모든 노드마다..
[알고리즘] LeetCode Lowest Common Ancestor of a Binary Search Tree JS
2022. 12. 1. 13:07
알고리즘
개요 이진트리와 두 개의 노드가 주어지는데 이때 두 노드 공통의 가장 가까운 조상 노드를 주어진 이진트리안에서 찾아 리턴하는 문제이다. 이때 주어진 이진트리는 BST의 속성을 가지는데 정렬되어 있다고 이해하면 된다. Lowest Common Ancestor of a Binary Search Tree - 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 풀이 사실 주어진 문제를 정확히 이해해서 풀지는 못했다. 단순히 DFS로 탐색하면서 지나온 노드들을 배열에 저장했다..
[알고리즘] LeetCode 189. Rotate Array JS
2022. 11. 26. 18:00
알고리즘
개요 nums 배열과 k 값이 주어진다. nums를 오른쪽으로 k번만큼 rotate 시켰을때의 nums 배열을 구하는 문제이다. Rotate 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 풀이 우선 k가 nums 배열보다 크다면 다시 원 상태로 돌아오는 경우를 계산해서 굳이 k만큼 돌릴 필요없어진다. 그 경우를 계산해서 단순하게 unshift와 pop으로 구현했는데 당연히 시간초과가 나오게 되었다 계속 고민하다가 잘 구현이 안되서 힌트를 좀 살펴봤..
[알고리즘] LeetCode 3. Longest Substring Without Repeating Characters JS
2022. 11. 24. 20:13
알고리즘
개요 문자열이 주어질 때, 문자열 내부에서 중복없이 이어지는 문자열 중, 가장 긴 문자열의 길이를 리턴하는 문제이다. Longest Substring Without Repeating Characters - 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 풀이 문자열 문제를 많이 안풀어봐서 조금 헷갈렸다. 그래도 기본적인 슬라이딩 윈도우를 사용한다는 것은 문자열 문제들 중 많이 출제되는 유형인거 같아 나름 쉽게 눈치 챌 수 있었다. 여기에 해쉬를 사용해 현재 문자열..
[알고리즘] LeetCode Top K Frequent Words JS
2022. 11. 24. 10:38
알고리즘
개요 문자열 배열이 주어지는데 이때 가장 많이 사용된 단어 순서대로 정렬하여 k만큼 리턴하는 문제였다. 만약 사용된 단어의 갯수가 같다면 lexicographical order순으로 정렬하여 리턴하라고 되어있었다. lexicographical order란 단순하게 알파벳순으로 정렬을 의미했고 js에서는 sort()를 사용하면 lexicographical order 순서대로 정렬된다는 것은 금방 알 수 있었다. Top K Frequent Words - 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 inte..
[알고리즘] LeetCode Decode String JS
2022. 11. 23. 16:30
알고리즘
개요 암호화된 하나의 문자열이 주어지는데 이걸 해독해서 return하면 되는 문제이다. 복호화하는 방식은 다음과 같다. 2[ac] => acac , 3[cd]2[ff] => cdcdcdffff 숫자[문자] 규칙을 가지며 [ ] 안에 있는 문자는 숫자만큼 반복해서 꺼낸다. 이렇게 모든 문자를 원본 문자열로 돌리면 된다 Backspace String Compare - 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 풀이 우선 스택으로 풀면 될거같다는 생각을 했다. 우..