본문 바로가기

전체 글117

[C++] [LeetCode 35] Search Insert Position 문제 풀기 전 생각 : /* find 함수를 사용해서 해당 타겟이 존재하는지 판별 만약 존재한다면 타겟의 인덱스를 리턴 존재하지 않는다면 반복문으로 타겟보다 큰 값이 나올때 검색하다 발견하면 리턴 마지막까지 타겟이 크다면 입력받은 백터의 크기를 리턴 */ class Solution { public: int searchInsert(vector& nums, int target) { auto it = find(nums.begin(), nums.end(), target); if(it != nums.end()) return it-nums.begin(); for(int i=0 ; i target) return i; } return nums.size(); } }; https://leetcode.com/problems.. 2021. 8. 9.
[C++] [백준 11004] K번째 수 문제 풀기 전 생각 : /* 뭐야 엄청 쉽네 라고 생각했다 정렬하고 2번째 숫자 출력하면 끝이다 접근법은 맞았다. */ #include #include using namespace std; bool compare(int x, int y) { return x > n >> k; int arr[n]; for(int i=0 ; i> k; for (int i = 0; i > ipt[i]; nth_element(ipt, ipt + k - 1, ipt + n); cout 2021. 7. 27.
[C++] [백준 11650] 좌표 정렬하기 문제 풀기 전 생각 : /* pair 와 sort 함수를 사용하면 쉽게 풀 수 있는 문제이다! */ #include #include using namespace std; bool comp(pair a,pair b){ if(a.first == b.first){ return a.second > n; pair arr[n]; for(int i=0 ; i> arr[i].first >> arr[i].second; } sort(arr,arr+n,comp); for(int i=0 ; i> v[i].second; } sort(v, v+n); for(int i = 0; i < n; i++) cout 2021. 7. 27.
[C++] [백준 1427] 소트인사이드 문제 풀기 전 생각 : /* 숫자의 입력을 문자열로 받는다. 그리고 해당 문자열을 각 글자별로 쪼개어 저장한다. 그리고 정렬 후 출력한다. */ #include #include using namespace std; bool comp(int a,int b){ return a > b; } int main(){ string s; cin >> s; int arr[s.length()]; for(int i=0 ; i 2021. 7. 27.
[C++] [백준 1755] 숫자놀이 문제 풀기 전 생각 : /* 입력 받은 범위의 숫자들을 알파벳으로 변환 후 저장한다. 그리고 소트 함수를 이용해 정렬한다. */ #include #include using namespace std; string num[10] = {"zero","one","two","three","four","five","six","seven","eight","nine"}; bool comp(pair p1,pair p2){ return p1.first > n1 >> n2; int n = n2 - n1 + 1; pair str[n]; for(int i = n1 ; i 2021. 7. 27.
[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++] [백준 11656] 접미사 배열 문제 풀기 전 생각 : /* 배열을 만든다. 입력된 문자열을 매 반복마다 앞에서 한글자씩 없앤다. substr 사용한다. 그리고 없앤후 해당 문자열을 배열에 넣는다. 그리고 마지막에 출력한다 */ #include #include using namespace std; int main(){ string s; cin >> s; string str[s.length()]; for(int i=0 ; i 2021. 7. 27.
[C++] [백준 10814] 나이순 정렬 문제 풀기 전 생각 : /* 이 문제 또한 정렬 함수를 커스터마이징? 하는 문제인듯 하다. 나이와 이름 두가지 정보가 입력되니 클래스를 만들어 사용하던지 pair 컨테이너?를 사용하면 된다. 나는 페어를 사용하기러 했다. 나이가 같다면 기존의 순서를 유지하면 되니 stable_sort() 함수를 사용하면 된다. */ #include #include #include #include using namespace std; bool compare( pair v1, pair v2 ) { return v1.first > n; vector v(n); for(int i=0 ; i> v[i].first >> v[i].second; } stable_sor.. 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++] [백준 1431] 시리얼 번호 문제 풀기 전 생각 : /* 알고리즘 라이브러리에 있는 소트 함수를 사용한다. 소트 조건은 따로 함수를 만들어 지정한다. */ #include #include #include #include using namespace std; bool comp(string s1,string s2){ int n1=0,n2=0; if(s1.length() == s2.length() ){ for(int i=0 ; i> n; string tmp[n]; for(int i=0 ; i> tmp[i]; } sort(tmp,tmp+n ,comp); for(int i=0 ; i 2021. 7. 26.
[C++] [백준 10867] 중복 빼고 정렬하기 문제 풀기 전 생각 : /* 중복을 허용하지 않고 정렬을 자동으로 해주는 컨테이너인 세트 컨테이너를 사용하면 쉽게 풀 수 있다 */ #include #include using namespace std; int main() { set s; int n,tmp; cin >> n; for(int i=0 ; i> tmp; s.insert(tmp); } for (typename std::set::iterator itr = s.begin(); itr != s.end(); ++itr) { cout N; bool histo[2001] = {false, }; for (int i = 0; i > n; histo[n + 1000] = true; } for (int i = 0; i 2021. 7. 26.
[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.