목록전체 글 (169)
하다보니
#include #include using namespace std; int n, m; int board[10]; int arr[10]; bool isused[10]; void func(int k) { if (k == m) { for (int i = 0; i > board[i]; } sort(board, board + n); func(0); }
/* N개의 자연수와 자연수 M이 주어졌을 때, N개의 자연수 중에서 M개를 고른 수열. */ #include #include using namespace std; int board[10]; int n, m; int arr[10]; bool isused[10]; void func(int k) { if (k == m) { for (int i = 0; i m; for (int i = 0; i > board[i]; sort(board, board + n); func(0); }
/* n까지 자연수 중 m개를 고른 수열 같은 수를 여러 번 골라도 된다. 같은 수를 골라도 되고 비내림차순이어야 한다. */ #include using namespace std; int n, m; int arr[10]; void func(int k) { if (k == m) { for (int i = 0; i < m; i++) { cout
/* 1부터 n까지 m개를 중복을 허용해서 고른다. */ #include using namespace std; int n, m; int arr[10]; void func(int k) { if (k == m) { for (int i = 0; i < m; i++) { cout m; func(0); }
/* 1부터 n까지 자연수 중 중복없이 m개 고른 수열, 고른 수열은 오름차순이어야 한다. */ #include using namespace std; int n, m; int arr[10]; bool isused[10]; void func(int k) { if (k == m) { for (int i = 0; i < m; i++) { cout m; func(0); }
#include using namespace std; int arr[30]; int n, s; int cnt = 0; void func(int cur,int tot) { if (cur == n) { if (tot == s) { cnt++; } return; } func(cur + 1, tot); func(cur + 1, tot + arr[cur]); } int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> s; for (int i = 0; i > arr[i]; func(0, 0); if (s == 0) cnt--; cout
#include using namespace std; int board[10][10]; int n, m; int arr[10]; bool isused[10]; void func(int k) { if (k == m) { for (int i = 0; i < m; i++) { cout m; func(0); }
#include #include #include using namespace std; int main() { int n; int ans = 0; cin >> n; while (n--) { string a; cin >> a; stack s; for (auto c : a) { if (!s.empty() && s.top() == c)s.pop(); else s.push(c); } if (s.empty())ans++; } cout
#include #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); while (true) { stack s; bool isValid = true; string a; getline(cin, a); if (a == ".")break; for (auto c : a) { if (c == '(' || c == '[')s.push(c); else if (c == ')') { if (s.empty() || s.top() != '(') { isValid = false; break; } s.pop(); } else if (c == ']') { if (s.empty() || s.top() != '[') { isVa..
프로세스 동기화. concurrency control이라고도 부른다. (병행 제어) 세마포어는 P연산과 V연산으로 구성되는 추상 자료형. monitor. - 프로그래밍 언어 차원에서 공유 데이터에 접근하는 문제를 monitor가 해결해서 프로그래머의 부담을 덜어주는 것. 공유 데이터 접근시 접근하는 코드를 모니터에 정의해서 해당 코드로만 공유데이터에 접근할 수 있게 한다. 모니터는 active한 프로세스가 하나만이 공유데이터에 접근할 수 있게 해준다. 모니터를 쓰고 있던 프로세스가 다 쓰고 나가든지 잠들던지 하면 대기하던 프로세스가 들어온다. 모니터에선 lock이 필요없다. condition variable. 값을 가지는 변수가 아닌 어떤 프로세스를 잠들게 하고 줄세우게 하기 위한 변수이다. wait와 ..