분류 전체보기
-
C++ #include #include #include using namespace std; typedef struct Edge_t Edge; struct Edge_t { int from, to, weight; bool operator s[J]) { r[J] = I; } else if ..
최소 스패닝 트리C++ #include #include #include using namespace std; typedef struct Edge_t Edge; struct Edge_t { int from, to, weight; bool operator s[J]) { r[J] = I; } else if ..
2019.06.20 -
C++ #include #include #define MINIMUM_POWER_OF_2_GREATER_THAN_MAXIMUM_N 131072 int T[MINIMUM_POWER_OF_2_GREATER_THAN_MAXIMUM_N*2]; int M = 1; void init(int N) { while (M 0) { T[index] += delta; index /= 2; } } int sum(int left, int right) { left = left + M - 1; right = right + M - 1; int sum = 0; while (..
인덱스 트리C++ #include #include #define MINIMUM_POWER_OF_2_GREATER_THAN_MAXIMUM_N 131072 int T[MINIMUM_POWER_OF_2_GREATER_THAN_MAXIMUM_N*2]; int M = 1; void init(int N) { while (M 0) { T[index] += delta; index /= 2; } } int sum(int left, int right) { left = left + M - 1; right = right + M - 1; int sum = 0; while (..
2019.06.20 -
스택 C++ int stack[MAX_SIZE]; int stack_size; void stack_init() { stack_size = 0; } bool stack_push(int val) { if (stack_size == MAX_SIZE) return false; stack[stack_size++] = val; return true; } int stack_pop() { return stack[--stack_size]; } bool stack_empty() { return stack_size == 0; } Swift struct Stack { private var storage = Array() var stackPointer: Int { storage.count } mutating func push(..
스택, 큐, 데큐, 힙스택 C++ int stack[MAX_SIZE]; int stack_size; void stack_init() { stack_size = 0; } bool stack_push(int val) { if (stack_size == MAX_SIZE) return false; stack[stack_size++] = val; return true; } int stack_pop() { return stack[--stack_size]; } bool stack_empty() { return stack_size == 0; } Swift struct Stack { private var storage = Array() var stackPointer: Int { storage.count } mutating func push(..
2019.06.20 -
입력 C/C++ #include int N; scanf("%d", &N); int A[1003]; for (int i = 0; i < N; i ++) { scanf("%d", A+i); } Java import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 한 줄에 정수 하나가 주어지는 경우 int N = Integer.parseInt(br.readLine()); // 한 줄에 정수 N개가 공백으로 분리되어 주어지는 경우 int[] A = new int..
빠른 입출력입력 C/C++ #include int N; scanf("%d", &N); int A[1003]; for (int i = 0; i < N; i ++) { scanf("%d", A+i); } Java import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 한 줄에 정수 하나가 주어지는 경우 int N = Integer.parseInt(br.readLine()); // 한 줄에 정수 N개가 공백으로 분리되어 주어지는 경우 int[] A = new int..
2019.06.20 -
덧셈, 뺄셈, 대입 연산은 상수시간이 걸리며 이를 O(1)라고 표현한다. 입력 데이터의 수 N에 대한 연산량을 계산한 수식의 최고차항만 취하여 표현한다. O(1) < O(ln N) < O(N) < O(N ln N) < O(N²) < O(N³) ln : 밑이 2인 log 실행환경에 따라 차이가 있지만 보수적으로 계산했을 때 1000만 건 정도의 연산이면 1초안에 결과가 나온다고 알려져 있다. 더 자세한 내용은 여기를 참조하세요.
복잡도 계산덧셈, 뺄셈, 대입 연산은 상수시간이 걸리며 이를 O(1)라고 표현한다. 입력 데이터의 수 N에 대한 연산량을 계산한 수식의 최고차항만 취하여 표현한다. O(1) < O(ln N) < O(N) < O(N ln N) < O(N²) < O(N³) ln : 밑이 2인 log 실행환경에 따라 차이가 있지만 보수적으로 계산했을 때 1000만 건 정도의 연산이면 1초안에 결과가 나온다고 알려져 있다. 더 자세한 내용은 여기를 참조하세요.
2019.06.20