2024/07/11 6

[BinarySearch][Easy] 704. Binary Search

https://leetcode.com/problems/binary-search/description/  기본적인 binary search 문제. TC log(N)기반의 타 문제 풀이들의 근간이 되므로, 잘 숙지 해 둘 것. int searchBS(vector& nums, int left, int right, int target) { if(left > right) return -1; int mid = left + (right-left) / 2; if(nums[mid] == target) return mid; else if(nums[mid] & nums, int target) { return searchBS(nums, 0, nums.size()-1, tar..

Leetcode/NeetCode 2024.07.11

[stack][Medium] 739. Daily Temperatures

https://leetcode.com/problems/daily-temperatures/description/ 정수배열이 주어지고, 이 배열이 각 날짜의 온도를 의미한다.각 날짜에서 더 따뜻해지는 날까지의 차수를 반환하라. 좋은 문제다.  코드로 가기 전에 반드시 수기로 로직을 확인할 필요가 있겠다. stack 데이터로 온도와 index데이터를 가진다. 현재 온도가 stack데이터 보다 높다면, 바로 계산하고 stack에 저장된 index에 이 차이를 쓴다.낮다면, stack에 계속 저장한다. 이게 다다.  stack에 최소값을 순차적으로 넣고 특정 조건에 pop하면 이전 조건들을 그대로 이용할 수 있음을 활용한다. 코드 더보기vector dailyTemperatures(vector& temp) { ..

Leetcode/NeetCode 2024.07.11

[stack][Medium] 22. Generate Parentheses

https://leetcode.com/problems/generate-parentheses/description/ n의 개수에 해당하는 유효한 괄호 구조를 만들라. 특정 조건에 따라 더해 나갈 수 있는 조건을 제한하며 특정 길이까지 수행한다. stack 보다는 backtrack에 가깝다.  진행 : '(' 를 더하거나 ')' 를 더할 수 있다.조건 : 1. open의 수가 n 보다 작으면 '('를 더할 수 있다.  2. open수가 close수보다 많을 때만, ')'를 더할 수 있다.  완료 : string 길이가 nx2가 되면 완료 된다.  코드 더보기void BuildParenthesis(vector& vBuff, string cur, int open, int close, int n){ if (..

Leetcode/NeetCode 2024.07.11

[stack][Medium] 155. Min Stack

https://leetcode.com/problems/min-stack/description/ Min stack을 구현하라. 모든 stack function은 O(1)에 작동하여야 한다.  두개의 stack을 사용한다. 하나는 기본 stack의 용도로, 다음 stack은 최소값 buffer로 사용한다.  stack의 본질은 어떤 특정 data를 넣은 역순으로 꺼내는 것이다. 최소값 stack에 (input 당시에) 최소값을 넣으면 꺼낼 때도 역시 보장되는 것이다.그냥 변수 하나를 써서 최소값을 기억해 놓는다고 생각해 보자. 하나에 대해서는 잘 작동할 것이나, 이것을 반환한 이후에 그 이전 최소값 정보가 필요하게 되고, 이것의 기능을 하는 것 또한 stack이 적당한 것이다.  코드 더보기class Min..

Leetcode/NeetCode 2024.07.11