Google 태그 관리자 아이콘
반응형

LeetCode 132

.leetcode(406. Queue Reconstruction by Height)

문제 https://leetcode.com/problems/queue-reconstruction-by-height/ 문제 풀기 전 가장 먼저 무얼 놓으면 변함이 가장 적을지를 고민했다. 숫자 크기가 큰 걸 고르면 아무래도 작은걸 먼저 선택했을때 보다 생각할 부분이 적어질 수 있다고 생각했다. 그런데 만약 같은 크기를 갖고 있으면 아무래도 앞에 있는 요소의 숫자가 적은것을 먼저 배치하는게 나중에 더 쉬울거라 생각해서 아래처럼 정렬을 해야겠다고 먼저 생각했다. // [7,0] // [7,0] [7,1] // [7,0] [6,1] [7,1] // [5,0] [7,0] [6,1] [7,1] // [5,0] [7,0] [5,2] [6,1] [7,1] // [5,0] [7,0] [5,2] [6,1] [4,4] [7..

알고리즘 풀이 2021.01.14

.leetcode(763. Partition Labels)

문제 https://leetcode.com/problems/partition-labels/ 문제 해설 문제는 같은 단어는 무조건 같은 블록으로 보면서 여러 블록으로 나누는 수가 가장 많은 방법을 찾는 것이었다. ex) ABBAC => 2개(ABBA, C) 왜냐하면 A라는 글자는 한 블록안에 있어야하므로 마지막 A가 나올때까지는 무조건 한블럭으로 본다. ex) ABCAC => 1개(ABCAC) 왜냐하면 A라는 글자만 보면 마지막 A가 나오는 ABCA까지를 한블록 후보자로 볼 수 있는데 그 사이에 B,C가 있으므로 마지막 B,C가 나오는데까지를 한 블록으로 봐야한다. 따라서 ABCAC가 한 블록이고 리턴은 1개가 된다. 문제 풀기 전 (문제이해를 잘못한 상태) 가장 많은 글자를 포함하되 가장 많이 쪼개라 글..

알고리즘 풀이 2021.01.13

.leetcode(20. Valid Parentheses)

문제 https://leetcode.com/problems/valid-parentheses/ 문제 풀기 전 이렇게 괄호 짝 맞추는거는 보통 stack을 쓰면되더라. 처음에 stack에 아무것도 없을때는 [{( 만 허용되고 젤 위에 들어간 기호에 따라 추가적으로 닫는 기호만 더 허용된다는 룰을 갖고 만들어보자. 직접 푼 풀이 소요시간: //9분(20:30 ~ 20:39) class Solution { public boolean isValid(String s) { Set basicAllowed = new HashSet(); LinkedList stack = new LinkedList(); for(int i=0; i

알고리즘 풀이 2021.01.13

.leetcode(155. Min Stack)

문제 https://leetcode.com/problems/min-stack/ 문제 풀기 전 stack을 구현한다고 생각했다. 괜히 array로 만들어서 사이즈 도달하면 2배 늘려줘야지 생각하고 만들었따. 문제를 다시 보고(모든 시간이 상수시간으로 나와야한다는 의미를 보고) 다시 풀었다. 직접 푼 풀이 소요시간: x(문제를 잘못 이해함) 느낀점 솔루션을 보고 Stack모델을 써도 되는구나 했다. 무조건 array로 구현해야하는 줄 알았는데.. stack두개를 써서 문제를 풀었다. 솔루션에는 여러가지 방법이 나오는데 개념적으로 비슷한거 같았다. 솔루션 공부 후 추가로 푼 풀이 class MinStack { private Stack origin; private Stack min; /** initialize ..

알고리즘 풀이 2021.01.09

.leetcode(53. Maximum Subarray)

문제 https://leetcode.com/problems/maximum-subarray/ Maximum Subarray - 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 문제 풀기 전 prev하고 max값을 잘 들고 있으면 O(n)으로 풀 수 있겠다. min값이 integer min max이므로 max의 자료형을 long으로 해야겠다. 직접 푼 풀이 소요시간: 24분(16:09 ~ 16:33) class Solution { public int maxSubArr..

알고리즘 풀이 2021.01.09

.leetcode(70. Climbing Stairs)

문제 https://leetcode.com/problems/climbing-stairs/ Climbing Stairs - 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 문제 풀기 전 dp냄새가 난다. 이전것을 기억해서 풀어야 겠다. 방법이 2개(step을 1개 가냐 2개 가냐)닌깐 1일때 recursion, 2일때 recursion하면 될거같다. 2개의 방법으로 n개씩 도달하니 O(n)걸릴것이다. 직접 푼 풀이 소요시간: 14분(09:07 ~ 09:21) cla..

알고리즘 풀이 2021.01.06

.leetcode(543. Diameter of Binary Tree)

문제 https://leetcode.com/problems/diameter-of-binary-tree/ 문제 풀기 전 트리는 기본 문제로 앞에 2개정도 풀어서 왠지 금방 풀 수 있을거 같았다. 그러나 그렇지 않았다. 각 노드별로 가장큰 것의 합을 구하고 한번 더 순회에서 가장 큰값만 가져오려고 하였다. O(n)정도의 시간이 걸리지 않을까 한다. 직접 푼 풀이 소요시간: 39분(08:43 ~ 09:22) class Solution { public int diameterOfBinaryTree(TreeNode root) { if (root == null) { return 0; } maxDepth(root); return searchMax(root); } public int maxDepth(TreeNode ro..

알고리즘 풀이 2021.01.05

.leetcode(121. Best Time to Buy and Sell Stock)

문제 https://leetcode.com/problems/best-time-to-buy-and-sell-stock/ Best Time to Buy and Sell Stock - 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 문제 풀기 전 가장 먼저 생각한건 왼쪽, 오른쪽 양쪽에서 와서 가장 작은값과 큰값의 차이를 구하는 것이었다. 그럴싸해보이지만 이걸로 20분 해맸다. 그러다 위 방법이 복잡해지자 이런 복잡한건 알고리즘이 아니다라는 생각에 왼쪽부터 차근히 가고..

알고리즘 풀이 2021.01.05

.leetcode(169. Majority Element)

문제 leetcode.com/problems/majority-element Majority Element - 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 문제 풀기 전 숫자를 세는 문제이기때문에 HashMap이 가장 먼저 떠올랐다. O(n)시간이 걸릴것이다. 뭔가 옛 기억이 PriorityQueue를 사용하면 될거같은데 잘 모르겠다. 직접 푼 풀이 소요시간: 11분(09:40 ~ 09:51) class Solution { public int majorityEl..

알고리즘 풀이 2021.01.02
반응형