분류 전체보기 201

[리트코드] Greedy 알고리즘 문제: 134. Gas Station

https://leetcode.com/problems/gas-station/ Gas Station - 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 ==풀이== 이 문제를 그리디 알고리즘으로 풀 수 있다는 걸 안다면 좀 더 쉽게 풀 수 있다. 현재 gas station에서 다음 gas station으로 넘어가기 위해서는 소비해야 하는 gas보다 충전된 gas가 더 많아야 한다. 충전된 gas는 이전부터 누적된 상태이다. 그러므로 처음 시작하는 gas statio..

알고리즘 2022.03.28

[리트코드] 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

[리트코드] 정렬 관련 알고리즘: 826. Most Profit Assigning Work (JavaScript)

https://leetcode.com/problems/most-profit-assigning-work/ Most Profit Assigning Work - 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 총 3개의 배열이 주어진다. 난이도, 이익, 작업자 이렇게 세 가지인데 난이도와 이익은 같은 인덱스일 경우 서로의 작업 난이도와 이익을 나타낸다. worker배열은 해당 작업자가 얼마 큼의 난이도 있는 업무를 처리할 수 있는지 나타낸다. ==풀이== difficu..

알고리즘 2022.03.25

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

[React] 리액트 안티패턴 4가지

리액트 안티 패턴 1. 프로퍼티를 사용한 상태 초기화 부모에서 받은 프로퍼티를 이용해 상태를 초기화했을 때의 문제점은 두 가지가 있다. 1. 정보 출처가 중복: props에서 받은 값을 state에 저장한 경우 핸들러를 이용해 state의 값을 변경했는데 이때 props에서 받은 값과 state에 저장된 값이 서로 달라지게 된다. 이때 어떤 값을 신뢰해야 하는지 100% 확신하기 어렵다. 2. 컴포넌트로 전달한 props가 변경되어도 상태가 업데이트되지 않음: 애플리케이션의 수명 주기 동안 프로퍼티의 값이 변경되더라도 자식 컴포넌트는 이미 초기화된 후이기 때문에 state는 초기화 시 저장한 값이다. 2. 상태 변경 setState를 사용하지 않고 값을 변경하면 컴포넌트를 다시 렌더링 하지 않는다. 예를..

React 2022.03.18

[sliding window 알고리즘] 리트코드 713. Subarray Product Less Than K

https://leetcode.com/problems/subarray-product-less-than-k/ Subarray Product Less Than K - 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보다 작은 경우의 수를 구하는 문제. ==풀이== 슬라이딩 윈도우 알고리즘을 이용한다. start와 end 두 가지 포인터를 선언하고 부분 배열의 곱이 k를 안 넘었다면 end를 증가시키고 k를 넘었다면 k이하가 될 때까지 star..

카테고리 없음 2022.03.16

[Sliding Window 알고리즘] 리트코드 438. Find All Anagrams in a String (with. 아스키 코드)

https://leetcode.com/problems/find-all-anagrams-in-a-string/ Find All Anagrams in a 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에서 p의 anagram이 시작하는 위치들의 리스트를 정답으로 리턴한다. ==풀이== 이런 문제같이 일정 범위 내에서 뭔가를 체크해 나가는 건 sliding window로 풀면 좋다. s와 p를 알파벳 개수 26개만큼 리스트를 만들어서 여기에 빈도수를..

알고리즘 2022.03.16

[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

[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