릿코드(LEETCODE)
-
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..
-
LEETCODE - 1089. Duplicate Zeros릿코드(LEETCODE) 2020. 6. 7. 20:09
https://leetcode.com/problems/duplicate-zeros/ vector int 어레이에 원소의 값이 0 이면 한칸식 0으로 채우주고 shift 하는 문제 1101 -> 1100 12012001 -> 12001200 class Solution { public: void duplicateZeros(vector& arr) { // 임시 vector int 를 만들고 0 이면 한번더 넣어 준다. // 괜히 머리아프게 shift 하지 말자 쉽게 풀리면 쉽게 풀리는 방법으로 풀자 vector tmp; for (int i = 0; i < arr.size(); i++) { int value = arr[i]; tmp.push_back(value); if (value == 0) { tmp.push..
-
LEETCODE - 1470. Shuffle the Array릿코드(LEETCODE) 2020. 6. 7. 19:38
https://leetcode.com/problems/shuffle-the-array/ 어레이에 있는 요소를 shuffle 하는 문제 입력으로 들어오는 인자 n 위치와 current 위치에 넣어 주면 된다. class Solution { public: vector shuffle(vector& nums, int n) { vector arr; const int size = nums.size(); for(int i=0; i
-
biweekly Contest 25릿코드(LEETCODE) 2020. 5. 5. 22:34
https://leetcode.com/contest/biweekly-contest-25/ 1번 문제 - 1431. Kids With the Greatest Number of Candies class Solution { public: vector kidsWithCandies(vector& candies, int extraCandies) { vector A = candies; sort(A.begin(), A.end()); int cMax = A[candies.size()-1]; vector vb; for(auto a:candies) { int cand = a; if(cand >= cMax|| cand + extraCandies >= cMax) vb.push_back(true); else vb.push_bac..
-
weekly-contest-187릿코드(LEETCODE) 2020. 5. 5. 20:55
https://leetcode.com/contest/weekly-contest-187/ 1번 문제 - 1436. Destination City https://leetcode.com/contest/weekly-contest-187/problems/destination-city/ 문자열 배열 [["B","C"],["D","B"],["C","A"]] 일때 D->B->C->A 로 경로를 나타낼 수 있다. 마지막 최종 경로인 A 를 출력 하는 문제이다. 시작점과 끝점은 1 번만 나오게 된다. class Solution { public: // 마지막은 항상 뒤에 있음으로 string destCity(vector & paths) { map m; for (int i = 0; i < paths.size(); i++) {..
-
485. Max Consecutive Ones릿코드(LEETCODE) 2020. 5. 2. 17:30
https://leetcode.com/problems/max-consecutive-ones/ 111100011111 글자가 있을때 연속되는 가장긴 1의 개수를 찾는 문제 111100011111 -> 1 연속으로 4 111100011111 -> 1 연속으로 5 class Solution { public: int findMaxConsecutiveOnes(vector& nums) { int sol = 0; int count = 0; for(auto a:nums) { if(a == 1) { count++; } else { count = 0; } sol = max(sol, count); } return sol; } };
-
jewels and stone릿코드(LEETCODE) 2020. 5. 2. 17:16
https://leetcode.com/problems/jewels-and-stones 문자열 J 는 보석을 의미하고, 문자열 S 는 돌과보석의 의미를 담은 문자열이다. 문자열 S 에서 J 의 보석이 몇 개 있는지 찾는 문제이다. 제약 사항 중에 Letters are case sensitive 라고 명시 되어 있으니 대소문자를 구별 한다는 점에 유의 하자. 예제의 문자열 J = 'aA', S = 'aAAbbbb' J 문자열 원소 개수 S 문자열에서 위치 a 1 aAAbbb A 2 aAAbbb 총합 3 // 2020-02-03 class Solution { public: int numJewelsInStones(string J, string S) { int sol = 0; const int size = J.s..