1837번 암호제작 : https://www.acmicpc.net/problem/1837 char P[n]; int main(){...scanf("%s", P);...} - input으로 long long 범위를 넘는 값을 받는다면, string을 사용!- 예제로 input 값을 '123'을 받으면,P[0] = '1', P[0] - '0' = 1P[1] = '2', P[1] - '0' = 2P[2] = '3', P[2] - '0' = 3=> " - '0'" : Character to Integer!
1) 시간복잡도가장 큰 범위 넣었을 때 1억 = 1초 정도. [1초가 걸리는 입력의 크기]O(N): 1억 (=10^8)O(NlogN): 5백만O(N^2): 1만O(N^3): 500O(2^N): 20O(N!): 10 O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) *log는 밑이 2인 log임! 2) 공간복잡도알고리즘의 메모리 사용량에 대한 분석결과로, 알고리즘 문제를 해결하기 위해서 사용하는 메모리의 크기를 말함. -각 자료형 별 메모리의 크기 (32bit, C/C++)char : 1byteint : 4byteslong long : 8 bytesfloat : 4bytesdouble : 8 bytes
[Brute Force]가능한 모든 경우의 수를 만들어보고 탐색하는 방법.가능한 모든 경우의 수를 알아야함 => 경우의 수가 너무 많으면 불가 [BFS]1.상태의 개수: 1초안에 나올 정도로 작아야함.2.'최소'를 구하는 문제3.상태와 상태를 연결하는 간선의 가중치가 모두 1. 0.graph & check 배열 정의1.시작을 '큐'에 넣는다.while(!q.empty()){q.pop()q.push(다음 정점)if(!check[정점] && map[][] == 1){check[정점] = true;...}} - check[]로 각 노드 1/0(true/false)- 또는, dist[]로 각 노드까지의 거리 메모 [DFS]1)'재귀함수' 사용 => Stack을 사용하는 경우는 극히 일부.0.graph & che..
Q1. 이차원 벡터vector ans; for(int i=0; i b) => EOF시 자동 탈출 Q4.double은 %lf로 받음.소수점 자리 더 표현하기 %.9lffloat과 dobule은 표현하는 소수 단위가 다름. Q5.문자열 배열의 끝 = '\0' Q6.endl 보다는 '\n'쓰는게 속도 더 빠름. Q7.에라토스테네스의 체(=소수 구하기) vector p; for (int i=2; i int max_int = INT_MAX; // 최대,최소값 쉽게 알 수 있음=> int min_int = INT_MIN; Q9. Bit Masking현재 집합이 S일때,-i를 추가S | (1