본문 바로가기

알고리즘268

1966 프린터 큐 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364#pragma warning(disable: 4996) #include #include #include #include #include using namespace std; int main() { int t, arr_len, num; queue q; vector rank; scanf("%d", &t); while (t--) { scanf("%d %d", &arr_len, &num); for(int i=0;i 2021. 1. 3.
6593 상범 빌딩 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102#include #include #include #include using namespace std; int level, row, col;int st_y, st_x, st_h;int end_y, end_x, end_h; int dh[6] = { 0,0,0,0,1 , -1};int dx[6] = { 1,-1,0,0,0 ,0};int dy[6] = { 0,0,.. 2020. 3. 12.
2875 대회 or 인턴 123456789101112131415161718192021222324252627#include int main() { int n, m, k; scanf("%d %d %d", &n, &m, &k); int a, b, c; if (n >= 2 * m) { a = m; b = n - 2 * m; } else { a = n / 2; b = m - a; } if (b >= k) printf("%d", a); else { int c = k - b; if (c % 3 == 0) printf("%d", a - c / 3); else printf("%d", a - (c / 3 + 1)); }}Colored by Color Scriptercs 그리디 문제라고 분류되어있긴 한데,이게 왜 그리디인지 모르겠다 처음부터 끝까지.. 2020. 3. 12.
9935 문자열 폭발 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#include #include #include #include using namespace std; char arr[1000005] = { 0 };char bomb[40] = { 0 };stack stk; int main() { scanf("%s %s", &arr, &bomb); int len_arr = strlen(arr); int len_bomb = strlen(bomb); int idx = 0; for (int i = 0; i 2020. 3. 12.
1351 무한 수열 123456789101112131415161718192021222324252627282930313233343536373839404142#include #include using namespace std; long long dfs(long long num); long long p, q;map mp; int main() { long long n; scanf("%lld %lld %lld", &n, &p, &q); long long rst = dfs(n); printf("%lld", rst);} long long dfs(long long num) { if (num == 0) return 1; long long l = num / p; long long r = num / q; long long lv, rv; if .. 2020. 2. 29.
1789 수들의 합 12345678910111213141516#include int main() { long long s; scanf("%lld", &s); long long num = 1; while (1) { long long tmp = (num + 1) * num / 2; if (tmp > s) break; num++; } printf("%d", num-1);}Colored by Color Scriptercs 2020. 2. 29.
1357 뒤집힌 덧셈 1234567891011121314151617181920212223242526#include #include #include using namespace std; int rev(string str) { int len = str.length(); int rst = 0; for (int i = 0; i 2020. 2. 29.
2240 자두나무 123456789101112131415161718192021222324252627282930313233#include #include using namespace std; int main() { int t, w; scanf("%d %d", &t, &w); int plum[1001] = { 0 }; for (int i = 1; i 2020. 2. 28.
7579 앱 12345678910111213141516171819202122232425262728293031323334353637#include #include using namespace std; int main() { int n, m; scanf("%d %d", &n, &m); int app[101] = { 0 }; int cost[101] = { 0 }; for (int i = 1; i > 이 배열을 떠올리지 못했다.대체 어떻게 이런 생각을 해내는거지? 2. 어찌됐든, 저 발상을 가지고 시작하면 그나마 수월하다메모장에 하나씩 써보면, 결국 그 전의 어플리케이션 기록을 기반으로 dp를 갱신해야 된다는 것을 알게 된다 3. 또한, 매 턴마다 해당 어플을 비활성화 할 수도, 안 할 수도 있다 4. 위의 매커니즘을 모.. 2020. 2. 28.
2302 극장 좌석 123456789101112131415161718192021222324252627282930313233343536373839404142#include int main() { int total, n; scanf("%d %d", &total, &n); int len_num[50] = { 0 }, bef = 1; while (n--) { int cur; scanf("%d", &cur); int len = cur - bef; len_num[len]++; bef = cur+1; } len_num[total - bef + 1]++; int maxV = -1; for(int i=40;i>0;i--) if (len_num[i] > 0) { maxV = i; break; } int dp[50] = { 0 }; dp[1].. 2020. 2. 28.
11066 파일합치기 12345678910111213141516171819202122232425262728293031323334353637#include int main() { int t; scanf("%d", &t); while (t--) { int n; scanf("%d", &n); int dp[501][501] = { 0 }; int sum[501] = { 0 }; for (int i = 1; i 2020. 2. 28.
11052 카드 구매하기 1234567891011121314151617181920212223242526#include #include using namespace std; int main() { int n; scanf("%d", &n); vector arr(n + 1, 0); vector dp(n + 1, 0); for (int i = 1; i 2020. 2. 27.