리트코드 문제 15

LeetCode 다익스트라 알고리즘, DFS 문제: 778. Swim in Rising Water

https://leetcode.com/problems/swim-in-rising-water/ Swim in Rising Water - 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문제인데 다익스트라 알고리즘을 사용해서 풀 수도 있다. 파이썬은 heapq 메서드가 있어서 우선순위 큐를 구현하기 쉽기 때문에 파이썬으로는 다익스트라 알고리즘을 적용해서 풀었고 자바스크립트는 DFS로 풀었다. [다익스트라] 다익스트라 알고리즘은 이 문제처럼 각 지점 간..

알고리즘 2022.05.26

[리트코드] 정렬 관련 알고리즘 문제: 406. Queue Reconstruction by Height (JavaScript)

https://leetcode.com/problems/queue-reconstruction-by-height/ Queue Reconstruction by Height - 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 문제가 길어서 복잡해 보이지만 Example을 보면 쉽게 이해할 수 있다. 이중 배열 각 요소중 [0]은 키를, [1]은 내 앞에 선 사람 중 나와 키가 같거나 큰 사람 수를 나타낸다. 이에 맞게 배열을 재 정렬해서 반환하면 된다. 첫 번째로 일단 ..

알고리즘 2022.03.25

[Python] 리트코드 Hash Table, Sorting문제(791. Custom Sort String)

https://leetcode.com/problems/custom-sort-string/ Custom Sort String - 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 우선 s의 문자들 중 order에 존재하는 문자를 order에서의 정렬 순서대로 정렬한 후 나머지 문자를 s에 있던 순서대로 정렬한다. 여기서 주의해야 할 점은 order는 모든 문자가 유니크하지만 s는 중복이 허용되기 때문에 s에 있는 모든 중복 문자는 order에 있는 순서대로 정렬되어야..

알고리즘 2022.03.14

[Sliding Window] with 예시문제 2가지

슬라이딩 윈도우는 네트워크를 공부할 때 배웠던 개념인데 이 방식을 알고리즘 문제에 적용시켜 풀기도 한다. 범위를 일정하게 고정시켜서 그 범위를 이동시켜가면서 데이터를 비교한다. two pointer알고리즘과 비슷한 알고리즘이다. [문제 1] 문자열 s에서 반복되는 알파벳이 없는 가장 긴 substring의 길이를 구하라. var lengthOfLongestSubstring = function (s) { let max = 0; let l = 0; for (let r = 0; r < s.length; r++) { const idx = s.slice(l, r).indexOf(s[r]); if (idx === -1) { max = Math.max(max, r + 1 - l); } else { l += idx +..

알고리즘 2022.02.16

[Two Pointer #2] 대표 문제 + 풀이

[문제 1] 주어진 문자열 배열을 뒤집기 var reverseString = function (s) { let l = 0, r = s.length - 1; while (l None: l, r = 0, len(s)-1 while l < r: s[l], s[r] = s[r], s[l] l += 1 r -= 1 reverse() 메서드를 쓰면 간단하게 해결할 수 있지만 알고리즘으로 직접 구현하는 것도 매우 간단하다. 왼쪽과 오른쪽을 가리킬 포인터를 만든 뒤 각자의 위치에서 중간 쪽으로 하나씩..

알고리즘 2022.02.15

[Python] 리트코드 140. Word Break II

https://leetcode.com/problems/word-break-ii/ Word Break II - 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 class Solution: def wordBreak(self, s: str, wordDict: List[str]) -> List[str]: def isInDict(start, words): # 4. 3에서 end+1하기 땜에 시작위치가 len(s)라면 정상적으로 찾은거 if start == len(s): a..

알고리즘 2022.01.10

[Python] 리트코드 583. Delete Operation for Two Strings

https://leetcode.com/problems/delete-operation-for-two-strings/ Delete Operation for Two Strings - 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 먼저 word1이랑 word2에서 공통된 알파벳들을 알아낸다. 공통되지 않은 알파벳들은 조작되어야 하는 알파벳이므로 word1과 word2의 각 length를 비교해 그 차이만큼 답으로 리턴한다. 공통된 알파벳을 가려내는데 고려해야 하는 사항..

알고리즘 2021.12.02

[Python] 리트코드 309. Best Time to Buy and Sell Stock with Cooldown

https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/ Best Time to Buy and Sell Stock with Cooldown - 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 이 문제는 [121. Best Time to Buy and Sell Stock] 이랑 [122. Best Time to Buy and Sell Stock II] 의 다음 단계라고 할 수 있다. 이..

알고리즘 2021.10.27

[Python] 리트코드 1567. Maximum Length of Subarray With Positive Product (누적 곱셈)

https://leetcode.com/problems/maximum-length-of-subarray-with-positive-product/ Maximum Length of Subarray With Positive Product - 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 이 문제는 https://leetcode.com/problems/maximum-product-subarray/ 문제의 응용 버전이다. Maximum Product Subarray는 su..

알고리즘 2021.10.25

[Python] 리트코드 55. Jump Game

https://leetcode.com/problems/jump-game/ Jump Game - 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 ==문제== nums배열에서 각 요소들은 오른쪽으로 최대 점프할 수 있는 칸 수이다. 첫 번째 인덱스에서 출발할 때 마지막 인덱스까지 도달할 수 있다면 True를 그렇지 않으면 False를 반환하는 문제이다. ==방법== 최대로 갈 수 있는 maxIdx를 저장하고 반복문을 돌면서 maxIdx를 갱신해준다. i와 [i] 값을..

알고리즘 2021.09.02