리트코드 40

LeetCode 2258. Escape the Spreading Fire (BFS, Dijkstra)

https://leetcode.com/problems/escape-the-spreading-fire/ Escape the Spreading Fire - 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초마다 사방으로 퍼지는데 불에 타지 않고 도착지까지 간다고 할 수 있을 때, 시작위치에서 최대로 머무를 수 있는 시간을 구하는 문제이다. 크게 두 단계로 나눠서 진행해야 한다. 1단계는 불이 근원지부터 모든 셀에 퍼지는데 걸리는 시간을 grid에 기록하고 2단..

알고리즘 2022.06.22

LeetCode BFS문제: 909. Snakes and Ladders

https://leetcode.com/problems/snakes-and-ladders/ Snakes and Ladders - 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. ladder 또는 snake를 만났을 때 해당 위치로 바로 이동하는 게 하나의 과정이라는 것 먼저 좌표를 구하는 함수를 따로 만들어서 현재 칸 번호를 주면 row, col을 되돌려주도록..

알고리즘 2022.05.31

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

LeetCode BFS문제: 207. Course Schedule (파이썬 딕셔너리, 자바스크립트 map(value가 배열))

https://leetcode.com/problems/course-schedule/ Course Schedule - 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 prerequisites의 [0]의 값을 갖기 위해서는 [1]값을 먼저 얻어야 하는 BFS문제이다. 전형적인 BFS문제대로 풀었다. ① [0]의 값을 키로 딕셔너리(python) 혹은 맵(JS)를 만들어서 해당 값을 얻기 위해 먼저 얻어야 하는 목록들을 value로 저장해둔다. ② numCourses-..

알고리즘 2022.05.24

[리트코드] 이진탐색 알고리즘: 33. Search in Rotated Sorted Array

https://leetcode.com/problems/search-in-rotated-sorted-array/ Search in Rotated Sorted 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 ==풀이== 이진 탐색 알고리즘을 사용하는 문제인데 nums가 k개만큼 로테이션된 상태로 주어진다. 이 문제의 핵심은 binary search 알고리즘을 사용하면서 구하는 mid가 로테이션된 부분인지 아닌지 판단하는 것이다. 오름차순 정렬된 배열에서..

알고리즘 2022.04.02

[리트코드] Hash Table 문제: 347. Top K Frequent Elements (python 딕셔너리, JavaScript map)

https://leetcode.com/problems/top-k-frequent-elements/ Top K Frequent Elements - 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 풀이법은 간단하다. 각 빈도수를 체크해서 hash로 저장하고 이걸 빈도수 역순 정렬해서 k개만큼의 키를 반환해주면 된다. 자바스크립트는 map을 활용하고 파이썬은 딕셔너리를 활용하여 풀었다. 각 언어의 문법을 잘 활용할 수 있는 문제이다. var topKFrequent = ..

알고리즘 2022.03.30

[리트코드] Greedy 알고리즘 문제: 2136. Earliest Possible Day of Full Bloom (feat. 이중배열 정렬)

https://leetcode.com/problems/earliest-possible-day-of-full-bloom/ Earliest Possible Day of Full Bloom - 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 ==풀이== 이 문제는 그리디 알고리즘으로 푼다면 쉽게 풀 수 있다. plant 하는 날짜는 각 씨앗들끼리 겹칠 수 없기 때문에 plant 하는 날을 잘 분배해야 한다. 다른 씨앗이 grow 하는 동안 plant 하도록 만들어야 한..

알고리즘 2022.03.28

[리트코드] 정렬 관련 알고리즘 문제: 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

[리트코드] 삼각형 관련 알고리즘 2문제

[문제 1] https://leetcode.com/problems/largest-perimeter-triangle/ Largest Perimeter Triangle - 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로 가장 긴 삼각형을 만들 수 있는 조합을 찾아서 그 둘레를 반환하는 문제 삼각형은 가장 긴 변=a, 두 번째 긴 변=b, 제일 짧은 변=c 라고 했을 때 a int: sort = sorted(nums, reverse = True) fo..

알고리즘 2022.03.25

[Python] 리트코드 Hash Table, Sorting 문제 (767. Reorganize String) 딕셔너리 정렬

https://leetcode.com/problems/reorganize-string/ Reorganize 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를 붙어있는 문자들이 겹치치 않도록 재 정렬하는 문제이다. ==풀이== 각 문자의 빈도수 구해서 딕셔너리를 내림차순 정렬 answer에 [0]부터 2씩 건너뛰며 단어 입력. 끝까지 돌았다면 이번엔 [1]부터 단어 입력 * 만약 최대 빈도수 값이 s의 총개수보다 크다면 한 바퀴를 돌고 맨..

알고리즘 2022.03.14