ios_base::sync_with_stdio(false);cin.tie(NULL);입출력 속도를 향상시킨다.freopen("input.txt", "rt", stdin);빌드되는 디렉토리에 input.txt라는 파일에서 입력을 읽어오는 코드이다.
cout << fixed;cout.precision(2);소수점 개수를 2개로 고정한다는 것이다. 3째자리에서 반올림하여 반영한다.ex) 출력
https://www.acmicpc.net/problem/5397연결리스트의 삽입/삭제 시간 복잡도는 O(1)으로, 배열의 삽잆/삭제 시간 복잡오니 O(N)보다 훨씬 짧다. list<char> link_l : 링크드리스트 선언link_l.begin() :
https://www.acmicpc.net/problem/11286최소 힙을 간단하게 적용하면 되는 문제가 아니다. 절대값과 실제값 두개의 비교기준을 생각하여야 하기때문에, 연산자 오버로딩을 통해 경우의 수를 고려하여 작성한다.bool operator<
C++ 에서는 최대힙이 디폴트 값이다. 따라서 추가적인ㅇ 조치를 하지 않아도 내림차순으로 출력이 된다.priority_queue<int, vector, greater> pQ; : 최소 힙을 사용하게 하여, 오름차순으로 출력되게 한다.
deque는 원소를 front, back으로 삽입, 삭제할 수 있다.push_back() : 뒤로 삽입push_front() : 앞으로 삽입pop_back() : 뒤 삭제pop_front() : 앞 삭제ex) n = 6
a.back() : 문자열의 맨뒤 문자를 가리킨다.a.front() : 문자열의 처음 문자를 가리킨다. a.push_back('a') : 문자열의 맨뒤에 문자를 삽입한다.a.pop_back() : 문자열의 맨뒤 문자를 삭제한다.a = a + "September 21."
a.find('a') : 문자의 위치를 찾는다.a.find("not_exists") : 문자열의 위치를 찾는다. 찾지 못한다면 string::npos 값을 return한다.count(a.begin(), a.end(), 'a') : 문자열 a에서, 알파벳 a가 몇개인지
isupper(ai) : 대문자인지 확인islower(ai) : 소문자인지 확인isdigit(ai) : 숫자인지를 확인toupper(c1) : char형 자료를 대문자로 바꾼다.tolower is : char형 자료를 소문자로 바꾼다.transform(lower_str
size() : string의 크기를 나타낸다.ai : string은 char의 연속으로 char를 원소로 갖는다고 생각할 수 있다.
배를 타고 강을 건너야 한다.배에는 단 두명의 사람만이 탈수 있다.n명의 사람들이 주어지고, 각 사람들은 노를 젓는 속도가 다르다.배의 속도는 노를 늦게 젓는 사람의 속도에 맞춰진다.모든 사람이 강을 건널때 시간이 얼마나 걸리는지 계산하라.ti + t1 + ti-1 +
사람의 숫자는 n으로 주어진다.각 사람이 좋아하는 숫자는, m개로 각 사람마다 숫자 m이 주어진다.연속된 m개의 숫자가 이어서 주어진다.숫자 k가 주어진다.1부터 k까지의 숫자 배열중 d개를 선택했을때, 사람들이 좋아하는 숫자들을 모두 포함하는 경우에 결과값에 +1을
두개의 문자열이 주어질때, 첫 번째 문자열에서 두 번째 문자열에 해당하는 아나그램의 총 개수를 출력하는 코드 ex) eabcbacade abc
dpi : i번째 원소를, 증가수열 부분의 마지막이라고 할때의, 최대 부분 증가수열의 크기i번째의 원소보다 작은 j의 범위에서, i번째 원소보다 작은 j번째 원소 중에, 가장 큰 부분 증가수열 크기에 +1을 한다.if(arrj < arri) : i번째 원소보다 작
set S : set 자료구조 선언S.insert(Vi) : set 자료구조에 원소 삽입, 원소의 중복을 허용하지 않음S.size() : set의 크기auto it : iterator를 대신하여 auto 사용S.find(wnat_to_find) : set 자료구조에 해
else if (n == r || r == 0) return 1 : 종료 조건return dpn = DFS(n - 1, r) + DFS(n - 1, r - 1) : 메모이제이션을 활용ex)5 3
메모이제이션을 통해, 다음번에 동일한 계산을 반복하지 않도록한다.dp1 : 선의 길이가 1일때, 자르는 경우의 수dp2 : 선의 길이가 2일때, 자르는 경우의 수dpn : 선의 길이가 n일때, 자르는 경우의 수문제의 크기를 아주 작은 단위로 축소한 뒤, 그 작은 단위에
dp1 : 선의 길이가 1일때, 자르는 경우의 수 dp2 : 선의 길이가 2일때, 자르는 경우의 수dpi : 선의 길이가 i일때, 자르는 경우의 수문제의 크기를 아주 작은 단위로 축소한 뒤, 그 작은 단위에서의 답을 구하고, 살짝 더 큰 단위의 문제를 푸는 형식이다.이
정점의 수 n, 간선의 수 m이 주어진다.마지막 입력으로는, 알고자하는 비용의 구간인 출발 정점과 도착정점이 주어진다.음의 사이클이 존재하여 답이 나올 수 없는 경우에는 -1출력.disti : 출발정점에서 i번째 정점까지의 비용을 기록한다.disti = 21470000