Programming399 백준 위상정렬 /*위상정렬이 무엇인가요. 어떤 노드를 방문할 때 반드시 선행 노드가 이미 모두 방문되어야 하는조건을 만족하는 노드 방문 순서를 결정하는 정렬입니다. 위상 정렬 기초에서.위상 정렬 순서대로 노드를 방문하면서 후행 노드의 최소건설시간을 갱신하면 됩니다. 빈 노드에서 큐를 꺼내서 처리하는 과정입니다. 1번 노드의 후행자인 2,3 번 노드이 최소 건설시간을 갱신합니다. 2번 노드를 꺼내서 처리하고, 4,5번 노드가 큐에 새로 들어옵니다. 오께이요.번 노드를 꺼내고 6번 노드가 새로 들어갑니다. */ #include #include #include #include #include using namespace std; int main() {int T;cin >> T;for (int t = 0; t < T; t++.. 2018. 1. 31. 백준 디피 1만들기 #include int Dp[1000001]; int min(int a, int b) {return a > b ? b : a;} int main(void) { int N;scanf("%d", &N); Dp[1] = 0; for (int i = 2; i 2018. 1. 31. 백준 계단 /*점화식 구현 뒤에서 부터 계산하는 것 맞습니다.? 먹 엑스 먹? 먹 엑 먹 먹 이렇게 풀어 쓸수가 있구나. 오케이요.*/ #include using namespace std; int n, stair[301];int dp[301]; int Max(int a, int b) {return a > b ? a : b;} int main() {cin >> n;for (int i = 0; i > stair[i];} dp[0] = stair[0];dp[1] = Max(stair[0] + stair[1], stair[1]);dp[2] = Max(stair[0] + stair[2], stair[1] + stair[2]); for (int i = 3; i < n; i++) {dp[i] = M.. 2018. 1. 31. 백준 삼각형 최대합 /*맨 위층 아래층으로 내려올 때, 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하세요. 대각선왼쪽 또는 대각선오른쪽에 있는 수를 선택가능합니다. 삼각형의 크기는 1이상 500이하.오케이 삼각형의 크기가 주어지고 오케이 이것은 구현가능합니다. */ #include #include using namespace std;int N;int numArr[501][501];int d[501][501];int maxVal=0; void problemIn() {cin >> N;for (int i = 1; i numArr[i][j];}}}/* i= 3 j =2 */void solve() {for (int i = 1; i 2018. 1. 30. 백준 팩토리얼 0의 개수 #include int main(){int n;int two = 0, five = 0;int i; scanf("%d", &n); for (i = 2; i 2018. 1. 30. 백준 피보나치 수열 /*백준 피보나치 수열 3*/ #include using namespace std;const int mod = 1000000;const int p = mod / 10 * 15;int fibo[p] = { 0,1 };int main() {long long n;cin >> n;for (int i = 2; i < p; i++) {fibo[i] = fibo[i - 1] + fibo[i - 2];fibo[i] %= mod;}cout 2018. 1. 30. 백준 피보나치 수열 #include using namespace std; int Fibonacci(int n) {int arr[3] = { 0,1,1 };for (int i = 2; i > num;cout > n;}void solution() {if (n -1) return cache[n];cache[n] = recursive(n - 2) + recursive(n - 1);re.. 2018. 1. 29. 백준 회전하는 큐 /*회전하는 큐라. 한번 문제를 읽어보고 풀어보도록 하겠습니다. 복습의 개념이 아니라,한번 풀어보도록 하겠습니다. 현재시간 5시 13분입니다. 3가지 연산이 가능합니다.첫번째 원소를 뽑아내는 것, 왼쪽으로 한 칸 이동하는 것 팝프론트해서 백하면 되겠습니다.오른쪽에 한 칸 이동하는 것은, 팝 백 해서 프론트하면 되겠습니다.포함되어 있는 수 ㅔㄴ이 주어지고 뽑아내려고 하는 원소의 위치가 주어집니다.처음 큐에서의 위치입니따. 2번 3번 연산의 최솟값을 출력하는 프로그램을 작성하세요 주어진 순서대로 뽑아내는데 드는 2번 3번 연산의최솟값을 출력하는 프로그램.*/ #include #include using namespace std;int n, r;deque deq;deque::iterator iter; int m.. 2018. 1. 29. 백준 디큐 /**/ #include #include #include using namespace std; int main() {int N;int num;string str;deque deq;cin >> N;for (int i = 0; i > str;if (str == "push_back") {cin >> num;deq.push_back(num);}else if (str == "push_front") {cin >> num;deq.push_front(num);}else if (str == "front") {if (!deq.empty()) {cout 2018. 1. 29. 백준 조세퍼스 문제 /*1번부터 엔번까지 엔명의 사람이 원을 이루어면서 앉아있고, 양의 정수 엠이 주어집니다. 순서대로 엠번쨰 사람을 제거합니다. 에명의 사람이 모두 제거될 때 까지 계속됩니다. 엔 엠 조세퍼스 수녕ㄹ이라고 합니다.7 3 조세퍼스 순열은 1234567 오께이 문제 이해했습니다. 어떻게 푸는지 살펴보도록 하겠습니다.*/ #include #include using namespace std; void Josepus(int N, int M) {queue q;for (int i = 1; i M;Josepus(N, M);return 0;} 대중화된 문제라던지, 풀이가 많은 것들, 그리고 문제로 주어진 것들에 대해서는 100퍼센트 완벽하게 풀이가 가능해야 됩니다. 그래야 코딩테스트 뿐만 아니라 면접때도 문제풀이를 통과할.. 2018. 1. 29. 이전 1 ··· 15 16 17 18 19 20 21 ··· 40 다음