본문 바로가기

릿코드7

[C++] [LeetCode 169] Majority Element 문제 풀기 전 생각 : /* 먼저 입력받은 백터를 정렬한다. 그 후 저장된 숫자를 하나하나 전 숫자와 비교하며 카운트를 한다. 마지막에 가장 많은 카운트를 기록한 숫자를 출력한다. */ class Solution { public: int majorityElement(vector& nums) { int max=0,max_i=0; int pre=0,pre_i=0; sort(nums.begin(),nums.end()); for(int i=0 ; i max){ max = pre; max_i = pre_i; } pre_i = nums[i]; pre = 1; } else { pre++; } } if(pre > max) max_i = pre_i; return max_i; } }; https://leetcode.com.. 2021. 7. 27.
[C++] [LeetCode 1047] Remove All Adjacent Duplicates In String 문제 풀기 전 생각 : /* 스택 컨테이너를 활용한다. 스택이 비었다면 글자를 푸쉬한다. 또는 top 에 있는 글자와 같다면 pop 하고 해당 글자도 패스한다. 만약 같지 않다면 푸쉬한다. 모두 끝난후 스택에 있는 글자를 차례 차례 string 에 넣는다. 그리고 해당 문자열을 리버스 한다. */ /* class Solution { public: string removeDuplicates(string s) { stack sc; string tmp = ""; for(int i=0 ; i 2021. 7. 27.
[C++] [LeetCode 234] Palindrome Linked List 문제 풀기 전 생각 : /* listnode 형태로 들어오는 원소들을 vector 컨테이너에 넣어주고 앞과 뒤를 비교한다. listnode 형태의 데이터를 다룰 수 있는지를 보는 문제인것 같다. */ class Solution { public: bool isPalindrome(ListNode* head) { vector v; for(ListNode *ln = head ; ln != NULL ; ln = ln->next){ v.push_back(ln->val); } for(int i=0 ; inext == nullptr) { return true; } ListNode *fast = head, *slow = head, *prev = nullptr; while (fast != nullptr && fast->n.. 2021. 7. 26.
[C++] [LeetCode 125] Valid Palindrome (pps 5-6) 문제 풀기 전 생각 : /* 문자열의 안에 있는 알파벳과 숫자가 아닌 것들은 제외시키고 남아있는 것들로 앞뒤가 같은지 반복문으로 판별한다. */ class Solution { public: bool isPalindrome(string s) { string str = ""; for(int i=0 ; i 2021. 7. 22.
[C++] [LeetCode 412] Fizz Buzz (pps 5-5) 문제 풀기 전 생각 : /* 반복문을 돌린다. 반복문을 돌릴때 사용하는 변수 i를 사용한다. i 는 1로 시작한다. 이유는 나머지 계산할 때 가독성을 위해서 i가 3과 5로 나누어 떨어질 때 FizzBuzz 를 백터에 추가하고 3으로만 나누어 떨어지면 Fizz 를 백터에 추가한다. 5로만 나누어 떨어지면 Buzz 를 백터에 추가하고 위의 경우들에 해당하지 않는다면 그냥 i를 추가한다. */ class Solution { public: vector fizzBuzz(int n) { vector v; for(int i = 1 ; i 2021. 7. 22.
[C++] [LeetCode 1154] Day of the Year (pps 5-4) 문제 풀기 전 생각 : /* 예전에 날짜 구하는 문제를 수업과제로 해본 적이 있어서 푸는 방법을 알고 있었다. 대신 입력받은 date를 year month day로 나눠야 한다. 이 부분은 split이 없으니 직접 반복문으로 처리해줘야 한다. */ #include class Solution { public: int dayOfYear(string date) { int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; int ymd[3]; int i=0,answer=0; string tmp = ""; date += '-'; for(int j=0 ; j 2)++d; return d; } }; 삼항 연산자를 잘 사용하면 저렇게 간단하게도 풀수 있구나 신기하구만요 subst.. 2021. 7. 18.
[C++] [leetCode 258] Add Digits (pps 4-6) 문제 풀기 전 생각 : /* 재귀 함수를 사용해서 풀기로 생각했다. 숫자가 입력되면 그 숫자를 string 타입으로 변환하고 변환된 string을 쪼개서 모두 더하고 더한 것을 재귀함수 형식으로 콜한다. 그리고 만약 입력된 숫자가 10보다 작다면 리턴한다. */ #include class Solution { public: int addDigits(int num) { if(num < 10) return num; string s = to_string(num); int answer = 0; for(int i=0 ; i 2021. 7. 18.