본문 바로가기

전체 글

(224)
백준 12886 돌 그룹 (C++) https://www.acmicpc.net/problem/12886#include #include #include #include using namespace std;//a, b의 히스토리bool visit[1501][1501];int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int a, b, c; cin>>a>>b>>c; int sum=a+b+c; if(sum%3){ cout> q; q.push(make_pair(a, b)); visit[a][b]=true; while(!q.empty()){ int aa=q.front().first; ..
백준 9019 DSLR (C++) https://www.acmicpc.net/problem/9019#include #include #include using namespace std;bool visit[10000];int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int t; cin>>t; for(int test=0;test>s>>e; fill_n(visit, 10000, false); queue> q; q.push(make_pair(s, "")); while(!q.empty()){ int cur=q.front().first; str..
백준 21923 곡예 비행 (C++) https://www.acmicpc.net/problem/21923#include #include #include #include using namespace std;int udy[2] = {0, -1};int udx[2] = {1, 0};int ddy[2] = {0, -1};int ddx[2] = {-1, 0};int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, m; cin >> n >> m; vector> arr(n, vector(m)); vector> udp(n, vector(m, -987654321)); vector> ddp(n, vector(m, -98765432..
백준 2073 수도배관공 (C++) https://www.acmicpc.net/problem/2073#include #include #include #define MAX 987654321using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int d, p; cin >> d >> p; vector> pipe(p); vector dp(d + 1, 0); //dp[i]: 수도관 길이를 i까지 이었을 때의 최대 용량 for (auto &item: pipe) { cin >> item.first >> item.second; //길이, 용량 } ..
백준 2758 로또 (C++) https://www.acmicpc.net/problem/2758#include #include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int t; cin >> t; while (t--) { int n, m; long long ans = 0; cin >> n >> m; //dp[i][j]: 마지막으로 선택한 수가 j인 i개의 로또 번호 vector> dp(n + 1, vector(m + 1, 0)); for (int i = 1; i 1. 문제선영이는 매주 엄청난 돈을 로또에..
[Java] BlockingQueue로 생산자-소비자 문제 해결하기 1. 개요본 포스팅은 김영한 강사님의 인프런 강의 "자바 고급 1편" 중 생산자-소비자 문제에 대해 정리한 포스팅입니다.2. 생산자-소비자 문제? 생산자 스레드와 소비자 스레드가 존재한다. 두 종류의 스레드는 critical section 내부의 큐에 접근하여 데이터를 역할에 맞춰 생산 및 소비하고자 한다. 하지만 큐의 길이는 한정되어 있으므로 다음의 문제가 발생할 수 있다.생산자가 너무 빠른 생산을 하여 큐가 가득 찼을 경우 생산자 스레드는 큐에 빈 공간이 생길 때 까지 기다려야 한다.소비자가 너무 빠른 소비를 하여 큐가 비었을 경우 소비자 스레드는 큐에 데이터가 들어올 때 까지 기다려야 한다. 이처럼 두 다른 역할을 하는 스레드가 특정 자원을 함께 생산하고, 소비하면서 발생하는 문제를 생산자-소비자 ..
백준 2631 줄세우기 (C++) https://www.acmicpc.net/problem/2631#include #include #include #define MAX 987654321using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; vector arr(n); //dp[i]: i번째 사람 까지의 LIS vector dp(n, 0); for (auto &item: arr) { cin >> item; } for (int i = 0; i 1. 문제N명의 아이들이 임의의 순서로 줄을 서 있을 때, 번호 순서대로 배치하기 위해 옮겨..
백준 18427 함께 블록 쌓기 (C++) https://www.acmicpc.net/problem/18427#include #include #define DIV 10007using namespace std;vector block[51];//dp[i][j]: i명의 학생이 j 높이만큼 쌓는 경우의 수int dp[51][1001];int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, m, h; cin >> n >> m >> h; cin.ignore(1); for (int i = 1; i =0){ dp[i][j]+=dp[i-1][j-block[i][k]]; ..