일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 백준
- 자료구조
- vector
- 정석학술정보관
- 컴공과
- coding
- 컴퓨터공학과
- DP
- 알고리즘
- 구현
- 오퍼레이팅시스템
- 북리뷰
- Computer science
- 정석
- 문제풀이
- 브루트포스
- 스택
- OS
- Stack
- Operating System
- 코테
- c++
- bfs
- 오에스
- 코딩
- 개발
- 너비우선탐색
- 그래프
- cs
- 컴공
- Today
- Total
목록vector (10)
Little Jay
vector container을 사용할 때 대부분 push_back()을 사용한다. 직관적으로 vector 컨테이너에 원소를 위에 삽입한다라는 의미이다. 그러나 push_back()함수에는 문제점이 존재한다. push_back() 함수는 '객체'를 집어넣는 형태이므로, 원형은 아래와 같다. void push_back (const value_type& val); void push_back (value_type&& val); emplace_back()도 동일하게 컨테이너 마지막에 '객체'를 삽입하는 기능을 수행한다. push_back()쪽을 먼저 본다면 push_back()은 rvalue, 즉 임시객체가 필요하다. 그렇기 때문에 push_back()이 어떻게 동작을 하나면, 인자로 필요한 객체를 생성 후 p..
정렬을 잘 생각해보면 되는 문제 3개씩 묶고 제일 작은 것을 제외한 숫자를 제외하고 total에 더해주면 된다 #include #include #include #include using namespace std; vector v(100001); int main() { int n; cin >> n; for (int i = 0; i > v[i]; } sort(v.begin(), v.end(), greater()); int total = 0; for (int i = 0; i < n; i++) { total += v[i] + v[i + 1]; i += 2; } cout
간단한 이진탐색 문제 참 메모리라는게 아속하다 문제의 태그에는 set 혹은 map이 달려있어서 처음에는 당연히 set으로 풀었는데 시간초과가 발생해버렸다. 아무래도 set이나 map이나 기능적으로 이진트리의 모습을 만들어야하기 때문에 계속해서 sort해주는 부분에서 메모리를 많이 잡아먹은 것 같다. #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int t; cin >> t; for (int i = 0; i > n; vector v; for (int j = 0; j > temp; v..
마지막에 조건으로 이름을 사전순으로 출력해야 되는것을 제대로 못보고 왜 틀렸는지 하루종일 보고 있었다..... 일단 맵이나 해쉬로 풀지 않았다. 이거 같은 경우는 그냥 벡터를 계속 정렬해주면서 binary_search로 빠르게 이름을 찾으면 되는 문제인 것 같다. #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m; vector v(n); v.resize(n); string s; for (int i = 0; i > v[i]; } sort(v.begin(), v.end()); vector ..
hash_table로 풀려고 했지만 채점서버에서 내 코드를 읽지 못해서 vector의 pair기능을 활용해서 다시 풀었다 이것 때문에 많이 문제를 채점해서 좀 그렇다 vector을 두개 사용했는데, 첫 번째 벡터는 바로 번호만 넣으면 출력이 되도록하는 도감으로 만들었고, 두 번째 벡터는 pair을 사용해서 이름과 번호를 같이 넣어서 sort해준 다음 이름순으로 정렬해서 이분탐색하여 찾았다. #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m; vector v1(n + 1); vector v2; v1.push_back(..
sort를 잘 사용하면 되는 문제 #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector v; v.resize(n); int total = 0; for (int i = 0; i > v[i]; } sort(v.begin(), v.end()); for (int i = 0; i < v.size(); i++) { for (int j = 0; j
vector 메소드 중에서 pop_back을 사용하는 문제. 아마 이 메소드를 사용하면 알아서 마지막 원소를 삭제해줘서 간단하게 풀 수 있지 않을까 생각한다. #include #include #include using namespace std; int main() { int k; cin >> k; vector list; for (int i = 0; i > a; if (a == 0) { list.pop_back(); } else { list.push_back(a); } } int sum = 0; for (int i = 0; i < list.size(); i++) { sum += list[i]; } cout
#include #include #include using namespace std; int main() { ios::sync_with_stdio(false); int testCase, a; cin >> testCase; vector list; for (int i = 0; i > a; list.push_back(a); } sort(list.begin(), list.end()); for (int i = 0; i < testCase; i++) { cout
벡터로 풀기 #include #include #include using namespace std; int main() { int testCase; cin >> testCase; vector arr; int input; for (int i = 0; i > input; arr.push_back(input); } sort(arr.begin(), arr.end()); cout a; int N = 7; for (int i = 0; i > ary[k]; } sort(ary, ary + 10); cout
vector 기능 중 pair을 처음 써본 문제 pair만 제대로 이해했다면 조금은 쉬운 예제 #include #include #include #include #include using namespace std; int main() { vector inputList; const int INPUT_NUM = 8; int inputNumber; for (int i = 0; i > inputNumber; inputList.push_back(make_pair(inputNumber, i + 1)); } sort(inputList.begin(), inputList.end(), greater()); int sum = 0; vector index; for (int i = 0..