Medium
-
LEETCODE - 1415. The k-th Lexicographical String of All Happy Strings of Length n릿코드(LEETCODE) 2020. 6. 7. 20:27
https://leetcode.com/problems/the-k-th-lexicographical-string-of-all-happy-strings-of-length-n/ consists only of letters of the set ['a', 'b', 'c']. 문자열 배열에 a b c 세개의 문자가 있고 입력으로 들어오는 n 은 문자열의 길이 k 는 n 길이 만큼이 조합으로 만들어진 무자열 배열의 크기를 뜻 한다. (아아~ 한국말 어렵다) 문제의 조건에서 s[i] != s[i + 1] for all values of i from 1 to s.length - 1 (string is 1-indexed). 이전의 글자는 그 다음 글자와 같을 수 없다. 만약 N 이 2일때 a,b,c 의 조합 문자는{aa,..
-
LEETCODE - 1461. Check If a String Contains All Binary Codes of Size K릿코드(LEETCODE) 2020. 6. 7. 20:17
https://leetcode.com/problems/check-if-a-string-contains-all-binary-codes-of-size-k/ 해당문제는 k 개의 이진 문자를 만드는 것이 키포인트이다. k의 값이 2 일때 2^2 임으로 총 4개의 이진 문자를 만들 수 있다. k의 값이 1 일때 2^1 = 2 class Solution { public: bool hasAllCodes(string s, int k) { if (k > s.length()) return false; unordered_mapmp; for (int i = 0; i < s.length()-k+1; i++) mp[s.substr(i, k)]++; return mp.size() == pow(2, k); } }; 모두다 만들고 k..
-
1366. Rank Teams by Votes릿코드(LEETCODE) 2020. 3. 3. 11:33
https://leetcode.com/problems/rank-teams-by-votes/ a~z 까지 알파벳의 가중치의 합과 정렬을 이용 struct Ele { char ch; vector cnt; Ele() { cnt.resize(26, 0); } }; bool operator b.cnt; return a.ch < b.ch; } class Solution { public: string rankTeams(vector& votes) { map my; for (int i = 0; i < votes.size(); ++i) { for (int j = 0; j < votes[i].size()..
-
1310. XOR Queries of a Subarray릿코드(LEETCODE) 2020. 2. 16. 16:55
https://leetcode.com/problems/xor-queries-of-a-subarray/ Source class Solution { public: vector xorQueries(vector& arr, vector& queries) { vector result; for (int i = 0; i < queries.size(); i++) { int left = queries[i][0]; int right = queries[i][1]; int cand = arr[left]; for (int j = left; j < right; j++) { cand = cand ^ arr[j+1]; } result.push_back(cand); } return result; } };
-
1352. Product of the Last K Numbers릿코드(LEETCODE) 2020. 2. 16. 15:55
https://leetcode.com/problems/product-of-the-last-k-numbers/ 입력으로 들어오는 숫자가 들어온다. getProuct() 는 배열의 뒷 부분부터의 요소의 곱을 출력 한다. cmd 원소 출력 1 add(1) [1] 2 add(2) [1, 2] 3 add(3) [1, 2, 3] 4 add(0) [1, 2, 3, 0] 5 add(8) [1, 2, 3, 0, 8] 6 add(2) [1, 2, 3, 0, 8, 2] 7 getProduct(1) [1, 2, 3, 0, 8, 2] 2 8 getProduct(2) [1, 2, 3, 0, 8, 2] 16 9 add(8) [1, 2, 3, 0, 8, 2, 8] 10 getProduct(1) [1, 2, 3, 0, 8, 2, 8]..
-
1143. Longest Common Subsequence릿코드(LEETCODE) 2020. 2. 15. 17:06
https://leetcode.com/problems/longest-common-subsequence/ 입력이 아래와 같을 때 text1 = "abcde", text2 = "ace" a b c d e a 1 1 1 1 1 a -> ace c 1 1 2 2 2 c -> ace e 2 2 2 2 3 e -> ace Source class Solution { public: int dp[1001][1001]; int longestCommonSubsequence(string text1, string text2) { int sol = 0; for (int i = 1; i
-
1347. Minimum Number of Steps to Make Two Strings Anagram릿코드(LEETCODE) 2020. 2. 14. 14:03
https://leetcode.com/problems/minimum-number-of-steps-to-make-two-strings-anagram/ D 풀이 anagram hello = olleh와 같이 같은 요소로 구성되어있는 문자열을 anagram이라고 함 t에서 몇 개의 alphabet 변경해야 s와 anagram 이 되는지 변경할 문자의 개수를 출력하는 문제 class Solution { public: int minSteps(string s, string t) { int alphabet[27] = { 0, }, alphabet2[27] = { 0, }; for (int i = 0; i < s.size(); i++) { alphabet[s[i] - 'a']++; alphabet2[t[i] - 'a'..
-
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..