문제링크모든 경우의 수를 전부 검사짝수끼리는 2씩 차이가 나므로 한 곳으로 모을 수 있고 홀수 역시 한 곳으로 모을 수 있다.짝수가 모인 곳과 홀수가 모인 곳의 위치를 또 한 곳으로 모으려면 짝수 위치에 있는 chip을 홀수로 다 옮기거나 그 반대가 된다.즉, 짝수의
문제링크Palindrome거꾸로 읽어도 제대로 읽은 것과 같은 문장을 의미한다.ex) "bcacb", "abba"Palindrome의 길이는 홀수, 짝수 모두 가능하며 홀수인 경우 정 가운데의 문자는 어느 것이든 상관없다는 특징이 있다.문자열을 구성하는 각 문자의 개수
문제링크모든 경우의 수 검사시간복잡도 : O(N^2)공간복잡도 : O(N)map의 key를 target에서 배열의 원소 값을 가지도록 하고, value를 인덱스로 가진다.map의 key 중 배열의 원소 값이 존재하면, 해당 인덱스들을 반환한다.시간복잡도 : O(N)공간
문제링크문자열의 문자를 순회한다.문자가 (, \[, { 라면 스택에 push한다.문자가 ), ], } 일 때 스택이 비어있으면 false를 반환하고, 스택의 pop값이 원하는 값이 아니라면 false를 반환한다.순회를 마치고 다시 한번 스택이 비어있는지 검사한다.시간복
문제링크스택에는 저장할 값과 현재까지의 최솟값을 함께 저장한다.push할 값과 minValue 중 더 작은 값을 스택에 push한다.pop을 하면 minValue 값을 갱신한다.push, pop, top, getMin의 시간복잡도 : O(1)공간복잡도 : O(N)풀이1
문제링크RecursionIteration
문제링크RecursionStackQueue
문제링크BFSMath전체 perimeter는 island \* 4겹치는 perimeter를 제거하기 위해서 island의 오른쪽, 아래에 island 존재 여부 확인왼쪽, 위는 굳이 안해도 repeat \* 2를 통해 해결 가능
문제링크메모이제이션dpi : i번째까지의 최대SubArray시간복잡도 : O(N)공간복잡도 : O(N)분할과 정복mid = (start + end) / 2mid ~ start 까지의 최대 부분 배열 -> amid + 1 ~ end 까지의 최대 부분 배열 -> ba, b
문제링크예시input : 0, 0, 10, 0 : 중복! (repeat = 1)0, 1 ; nums2 - 1 = nums2 -> 0, 1, 1return 3 - 1예시input : 0, 0, 10 > nums1 - 1 -> false0 > nums1 - 1 -> fal
문제링크
문제링크3, 5 둘다 약수로 가지는 경우3 만 약수로 가지는 경우5 만 약수로 가지는 경우둘 다 아닌 경우mod 사용하지 않고 해결
문제링크5, 1, 6count : 15, 1, 6count : 2 \- 5, 1, 5, 6, 1, 6count : 3 \- 5, 1, 65, 1, 6(0, 0)(1, 5), (1, 1), (1, 6)(2, 5^1), (2, 5^6), (2, 1^6)(3, 5^1^6
문제링크참조
문제링크참조
문제링크DFSBFS
문제링크Defaultunion(parents, lengths, 1, 4)union(parents, lengths, 3, 5)union(parents, lengths, 4, 5)hashMap100 = 0 + 0 + 1 = 1hashMap4 = 0 + 0 + 1 = 1ha
문제링크
문제링크StringIntHalf Int
문제링크내장함수 commonPrefixWith 사용indexOf 사용Divide & Conquer
https://leetcode.com/problems/min-max-game/https://leetcode.com/problems/partition-array-such-that-maximum-difference-is-k/https://leet
https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/
https://leetcode.com/problems/intersection-of-two-linked-lists/best explanationhttps://leetcode.com/problems/intersection-of-two-linked-list
https://leetcode.com/problems/longest-substring-without-repeating-characters/O(N^2) timeO(N) timeO(N) time
https://leetcode.com/problems/minimum-operations-to-reduce-x-to-zero/
problem Prefix sum with two pointers - 1 Prefix sum with two pointers - 2 Hash set with two pointers
https://leetcode.com/problems/triangle/N is number of rows
https://leetcode.com/problems/delete-operation-for-two-strings/N: length of word1M: length of word2
https://leetcode.com/problems/longest-string-chain/N: size of arrayM: length of word
https://leetcode.com/problems/longest-palindromic-substring/timeout
https://leetcode.com/problems/short-encoding-of-words/O(N \* K^2) timeN is number of wordK is length of wordO(N \* K) time
https://leetcode.com/problems/furthest-building-you-can-reach/O(N \* logL) timeN: number of buildingsL: number of laddersmax heap으로 풀 생각만 했는데, 거꾸
https://leetcode.com/problems/kth-largest-element-in-an-array/
https://leetcode.com/problems/course-schedule-iii/
https://leetcode.com/problems/minimum-deletions-to-make-character-frequencies-unique/
sort binary tree
https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/incorrect answerwe don't need specific meeting point, just calculate (max
https://leetcode.com/problems/maximum-units-on-a-truck/
https://leetcode.com/problems/maximum-area-of-a-piece-of-cake-after-horizontal-and-vertical-cuts/
https://leetcode.com/problems/candy/
https://leetcode.com/problems/longest-consecutive-sequence
https://leetcode.com/problems/fibonacci-number/
단점 : 모든 island 의 (x, y) 좌표를 BFS 순회장점 : 필요한 (x, y) 좌표에 대해서 BFS 순회
https://leetcode.com/problems/add-binary/discuss/24475/Short-code-by-c%2B%2B
Recursion Stack
DFS Back Tracking
우연히 맞은 정답...!너비가 가장 긴 컨테이너 면적부터 계산!너비가 짧아질수록 더 큰 컨테이너 면적을 얻기 위한 조건은 컨테이너의 높이가 이전 높이보다 반드시 높아야 한다!
Int Array Hash Set bit manipulation