본문 바로가기

분류 전체보기

(60)
[백준] 10866 덱 #include const int op_length = 11; const int d_length = 10004; class deque{ public: int arr[d_length]; unsigned int front = 0; unsigned int back = 0; void push_back(int v) { arr[back] = v; back = (back + 1) % d_length; } void push_front(int v) { front = (front + d_length-1) % d_length; arr[front] = v; } void pop_front() { if (empty()) { printf("-1\n"); } else { printf("%d\n", arr[front]); front ..
[백준] 1966 프린터 큐 #include const int q_length = 101; class item { public: int priority; bool isTarget; }; class printer_queue { public: item arr[q_length]; int front = 0; int back = 0; void push_back(item v) { arr[back] = v; back = (back+1) % q_length; } void pop() { front = (front+1) % q_length; } bool is_empty() { return front == back; } void print_target() { int count = 0; while (!is_empty()) { item c = arr[fr..
[백준] 11866 요세푸스 문제0 c++ #include #include using namespace std; int main() { int k, n; scanf("%d %d", &n, &k); queue q; for (int i = 0; i < n; ++i) { q.push(i+1); } printf(""); }
[백준] 2164 카드2 #include #include using namespace std; int main() { int n; scanf("%d", &n); queue q; for (int i = 0 ; i < n; i++) { q.push(i+1); } while (q.size() != 1) { q.pop(); q.push(q.front()); q.pop(); } printf("%d\n", q.front()); }
[백준] 4949 균형잡힌 세상 c++ #include #include #include void solveline(char *s) { char stack[102]; int idx = 0; while (*s != '\0') { char c = *s; if (c == '(' || c== '[') { stack[idx++] = c; } else if (c==')'||c==']'){ if (idx > 0 && ((stack[idx-1] == '(' && c== ')') || (stack[idx-1] == '[' && c== ']'))) { idx--; } else { printf("no\n"); return; } } s++; } if (idx != 0) { printf("no\n"); } else { printf("yes\n"); } } in..
[백준] 10773. 제로 https://www.acmicpc.net/problem/10773 그냥 스택을 사용하면 된다. #include int main() { int k; int arr[100005]={0,}; int idx = 0; scanf("%d", &k); for (int i = 0; i < k; ++i) { int tmp; scanf("%d", &tmp); if (tmp == 0) { --idx; } else { arr[idx++] = tmp; } } int s = 0; for (int i = 0; i < idx; ++i) { s += arr[i]; } printf("%d\n", s); }
[백준] 2004 조합 0의 개수 https://www.acmicpc.net/problem/2004 #include int aa(int n, int mod) { int count = 0; for (long long int i = mod; n / i >= 1; i *= mod) { count += n / i; } return count; } inline int minmin(int a, int b) { return a < b ? a : b; } int main() { int n, m; scanf("%d %d", &n, &m); int a, b, c, d, e, f; a = aa(n, 2); c = aa(n-m, 2); e = aa(m, 2); b = aa(n, 5); d = aa(n-m, 5); f = aa(m, 5); printf("%d\..
[백준] 1676. 팩토리얼 0의 개수 https://www.acmicpc.net/problem/1676 뒤에서부터 0이 아닌 숫자가 나올 때까지 0의 갯수를 구하는 것이다. 0이 나오는 것은 10이 곱해져있다는 것이므로 그 약수인 2와 5가 몇번 곱해지 알면 풀 수 있다. #include int d[501][2]; // 0 -> 2의개수 1 -> 5의 개수 int aa(int n, int mod) { int i = 0; while (n % mod == 0) { i++; n = n/mod;} return i; } inline int minmin(int a, int b) { return a < b ? a : b; } int main() { int n; scanf("%d", &n); for (int i = 2; i