C++로 코테 풀이하며 기억하고 싶은 팁 적어가는 공간
#include <bits/stdc++.h>
에 모든 표준 라이브러리가 포함되어 있기 때문에 이 헤더 하나면 충분할 것 (코테볼때 해당 헤더 지원 안 해서 하나씩 씀 ㅠ.ㅠ)#include <bits/stdc++.h>
using namespace std;
int main() {
int arr[3] = { 1, 2, 3 };
do {
for (int i = 0; i < 3; i++)
cout << arr[i] << ' ';
cout << '\n';
} while (next_permutation(arr, arr + 3));
return 0;
}
vector<string> split(string& s, string& sep) {
int pos = 0;
vector<string> res;
while (pos < s.size()) {
int nxt_pos = s.find(sep, pos); //pos부터 찾는 것
if (nxt_pos == -1) {
nxt_pos = s.size();
}
if (nxt_pos-pos>0) res.push_back(s.substr(pos, nxt_pos-pos));
pos = nxt_pos + sep.size();
}
return res;
}
#inclue <string>
s.find(찾을 문자열 , 검색 시작 위치, 찾을 문자열 길이)
찾은 문자열의 첫 위치 반환
string s = "My Hello World!";
if (s.find("Nothing") == string::npos)
cout << "npos\n"; // npos
cout << s.find("Hello") << "\n"; // 3
cout << s.find("H", 3) << "\n"; // 3
cout << s.find(" ", 3) << "\n"; // 8 (두 번째 공백의 위치 검색되었음)
cout << s.find("long", 3, 2) << "\n"; // 6 (long에서 2글자인 lo만 검색하기 때문)
#inclue <algorithm>
find(찾기 시작할 위치, 마지막 위치, 찾을 값)
find(v.begin(), v.end(), 10);
iterator로 반환
vector<int> v = { 100, 655, 1, -40, 10, 55 };
vector<int>::iterator it = find(v.begin(), v.end(), 10);
cout << *it << "\n"; // 10
cout << it - v.begin() << "\n"; // 4 (인덱스 알아내는 법)
기초작성요령
p.19,20 vector 관련
bits/stdc++.h 헤더 추가 방법