릿코드(LEETCODE)
-
56. Merge Intervals릿코드(LEETCODE) 2020. 2. 12. 13:34
https://leetcode.com/problems/merge-intervals/ 2차원 벡터의 각각의 요소의 값이 겹치는 부분이 없도록 병합을 하는 문제. input 이 몇 개가 들어오는지 명시되어 있지 않다. null 도 입력될 수 있으니 주의한다. Source 입력으로 들어오는 vector의 요소는 순서가 보장되어 있지 않다. 오름 차순 정렬을 하고 overlap 되는 구간을 찾아 병합한다. class Solution { public: vector merge(vector& intervals) { vector vvi; const int size = intervals.size(); if (size == 0) { return vvi; } sort(intervals.begin(), intervals.en..
-
520. Detect Capital릿코드(LEETCODE) 2020. 2. 12. 11:07
https://leetcode.com/problems/detect-capital 문자열이 모두 대문자이거나 소문자 이거나 첫 문자가 대문자고 나머지가 소문자인 경우 true class Solution { public: bool detectCapitalUse(string word) { string str = word; std::transform(str.begin(), str.end(),str.begin(), ::toupper); bool isUpper = str == word; std::transform(str.begin(), str.end(),str.begin(), ::tolower); bool isLower = str == word; bool onlyOne = false; if(word[0] >= 'A..
-
146. LRU Cache릿코드(LEETCODE) 2020. 2. 12. 09:59
https://leetcode.com/problems/lru-cache LRU Cache Discussion 에 있는 풀이 class LRUCache { using MyList = list; using Cache = unordered_map; int maxSize; Cache cache; MyList myList; int promote(int key, int value) { // assert key exists // move to front, O(1) myList.erase(cache[key]); myList.push_front({key, value}); // replace iterator to new begin cache[key] = myList.begin(); return value; } void e..
-
703. Kth Largest Element in a Stream릿코드(LEETCODE) 2020. 2. 11. 18:28
https://leetcode.com/problems/kth-largest-element-in-a-stream/ Kth Largest Element in a Stream - 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 k 번째 엘리먼트를 출력하는 add 함수를 만드는 문제입니다. 모든 원소를 삽입할 필요 없이 k 번째까지만 삽입하고 k개 이상일 때 가장 작은 값을 삭제하는 식으로 풀이가 나은 듯 Dicussion에 있는 풀이 class KthLargest { ..
-
1338. Reduce Array Size to The Half릿코드(LEETCODE) 2020. 2. 11. 17:31
https://leetcode.com/problems/reduce-array-size-to-the-half 불러오는 중입니다... D 풀이 map 을사용하여 같은 요소의 가중치를 준다. 이후 vector 에 가중치값을 삽입하고 오름차순 정렬을 한다. 배열의 사이즈 절반 보다 가중치의 값이 크다면 가장 적은 숫자를 제거하여서 vector 의 크기를 절반으로 줄일수 있다. class Solution { public: int minSetSize(vector& arr) { const int size = arr.size(); map m; for (int i = 0; i < size; i++) { m[arr[i]]++; } const int half = size / 2; vector vi; for (const au..
-
263. Ugly Number릿코드(LEETCODE) 2020. 2. 10. 15:07
https://leetcode.com/problems/ugly-number/ Ugly Number - 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 해당 문제는 2,3,5로 나누어지는 수를 구하는 문제입니다. 소수 판정하는 방법과 유사하지만 17 의 경우 소수이지만 2, 3, 5 나누어 떨어지지 않기 때문에 ugly number 입니다. 수 판정 3 3 -> 1 X 20 20 -> 10 -> 5 -> 1 X 6 6 -> 3 -> 1 X 4 4 -> 2 -> 1 ..
-
67. Add Binary릿코드(LEETCODE) 2020. 2. 10. 13:08
https://leetcode.com/problems/add-binary/ Add Binary - 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 틀린 풀이 문자열로 들어오는 해당 값을 십진수로 변경하고 덧셈을 한 결과를 다시 2진수로 변경하는 방법으로 풀이. 문제에서 문자열의 길이의 범위를 주어지지 않아 1차로 풀이하였다. INPUT으로 들어오는 문자열의 길이의 범이가 INT 유효 범위가 넘어서 오답이 됨. 문자열이 입력으로 들어오는 문제에서는 정수 유효 범위 ..