본문 바로가기

Problem Solving/리트코드(leetcode)

(29)
[Leetcode/C++] 168. Excel Sheet Column Title class Solution { public: string convertToTitle(int n) { string answer = ""; while(n != 0) { answer = (char)((n - 1) % 26 + 'A') + answer; n = (n-1) / 26; } return answer; } }; 그냥 단순한 사칙연산과 구현문제였는데 26으로 나누고 마드하는 전형적인 문제이다. 문제: https://leetcode.com/problems/excel-sheet-column-title/ Excel Sheet Column Title - LeetCode Level up your coding skills and quickly land a job. This is the best place to ex..
[Leetcode/C++] 682. Baseball Game class Solution { public: int calPoints(vector& ops) { vector answer; int temp1 = 0, temp2 = 0; for(auto& it : ops) { if(it == "+") { temp1 = answer.back(); answer.pop_back(); temp2 = answer.back(); answer.emplace_back(temp1); answer.emplace_back(temp2+temp1); } else if(it == "C") { answer.pop_back(); } else if(it == "D") { temp1 = answer.back(); answer.emplace_back(temp1*2); } else { answer.empl..
[Leetcode/C++] 206. Reverse Linked List /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: ListNode* reverseList(ListNode* head) { ListNode *prev = nullptr; ListNode *curr = head; while(head != nullptr) { curr = curr->next;..
[Leetcode/C++] 496. Next Greater Element 1 class Solution { public: vector nextGreaterElement(vector& nums1, vector& nums2) { vector answer; for(int i = 0; i nums1[i]) {temp = *it; break;} } temp == 0 ? answer.push_back(-1) : answer.push_back(temp); } else { answer.push_back(-1); c..
[Leetcode/C++] 1021. Remove Outermost Parentheses class Solution { public: string removeOuterParentheses(string s) { int idx= 0; string answer = ""; for(int i = 0; i 1) answer.push_back(s[i]); idx--; } } return answer; } }; 그냥 O(n)으로 최대한 처리하고 싶어서 처음 괄호와 끝나는 괄호를 제외하고 모두 담도록 구현을 해보았습니다. 문제: https://leetcode.com/problems/remove-outermost-parenthes..
[Leetcode/C++] 551. Student Attendance Record I class Solution { public: bool checkRecord(string s) { return s.find("LLL") != string::npos || count(s.begin(), s.end(), 'A') > 1 ? false : true; } }; string에 내장되어있는 find 함수를 이용해 LLL을 찾았거나 결석(A) 가 2번이상이면 false를 리턴하도록 구현하였다. stiring의 find 함수는 algorithm의 find 함수와 다르게 find(찾을문자, 시작점)을 주어준다. 문제: https://leetcode.com/problems/student-attendance-record-i/ Student Attendance Record I - LeetCode Level up..
[LeetCode/C++] 14. Longest Common Prefix class Solution { public: string longestCommonPrefix(vector& strs) { if(strs.empty()) return ""; sort(strs.begin(), strs.end()); string smallest = strs[0]; string biggest = strs[strs.size()-1]; string answer = ""; for(int i = 0; i < biggest.size(); i++) { if(smallest[i] == biggest[i]) answer += smallest[i]; else break; } return answer; } }; 맨 처음에는 모든 벡터를 돌아가면서 첫 문자부터 가장 길이가 짧은 문자열까지 반복하며 비교하는 것을 ..
[LeetCode/C++] 844. Backspace String Compare class Solution { public: bool backspaceCompare(string s, string t) { string a = ""; string b = ""; for(int i = 0; i < s.length(); i++) { if(!a.empty() && s[i] == '#') a.pop_back(); if(s[i] != '#') a.push_back(s[i]); } for(int j = 0; j < t.length(); j++) { if(!b.empty() && t[j] == '#') b.pop_back(); if(t[j] != '#') b.push_back(t[j]); } return a.compare(b) == 0 ? true : false; } }; 이 문제는 #이 뒤로가기 버..