문제링크 : https://www.acmicpc.net/problem/13397 13397번: 구간 나누기 2 첫째 줄에 배열의 크기 N과 M이 주어진다. (1 ≤ N ≤ 5,000, 1 ≤ M ≤ N) 둘째 줄에 배열에 들어있는 수가 순서대로 주어진다. 배열에 들어있는 수는 1보다 크거나 같고, 10,000보다 작거나 같은 자연수 www.acmicpc.net #include using namespace std; #define fastio ios_base::sync_with_stdio(0); cin.tie(0); int n, m; int cal(int mid, int arr[]) //해당 mid 값 갯수 계산 { int cnt = 1, minV = arr[0], maxV = arr[0]; for (int..
문제링크 : https://www.acmicpc.net/problem/16401 16401번: 과자 나눠주기 첫째 줄에 조카의 수 M (1 ≤ M ≤ 1,000,000), 과자의 수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 과자 N개의 길이 L1, L2, ..., LN이 공백으로 구분되어 주어진다. 과자의 길이는 (1 ≤ L1, L2, ..., LN ≤ 1, www.acmicpc.net #include using namespace std; #define fastio ios_base::sync_with_stdio(0); cin.tie(0); int M, N, L, result; vector v; void binary_search(int l, int h) { while (l = M) {..
문제링크 : https://www.acmicpc.net/problem/21314 21314번: 민겸 수 민겸 수 하나가 주어진다. 민겸 수는 대문자 M과 K로만 이루어진 문자열이며, 길이는 3,000을 넘지 않는다. www.acmicpc.net #include using namespace std; #define fastio ios_base::sync_with_stdio(0); cin.tie(0); string s; string s_min = ""; string s_max = ""; int cnt = 0; int main() { fastio; cin >> s; for (int i = 0; i < s.length(); i++) { if (s[i] == 'M') { cnt++; if (cnt == 1) //M..
문제링크 : https://www.acmicpc.net/problem/17204 17204번: 죽음의 게임 중앙대학교 소프트웨어대학 새내기들을 맞이하게 된 17학번 김영기는 두 학번이라는 차이를 극복하기 위해 새내기들과 친해지려고 노력하고 있다. 그 노력 중 하나는 바로 새내기들과의 술자 www.acmicpc.net #include using namespace std; #define fastio ios_base::sync_with_stdio(0); cin.tie(0); int n, k, num, cnt = 0; int arr[150]; vectorcheck; int main() { fastio; cin >> n >> k; for (int i = 0; i > arr[i]; }..
문제링크 : https://www.acmicpc.net/problem/14465 14465번: 소가 길을 건너간 이유 5 첫 줄에 N, K, B (1 ≤ B,K ≤ N)가 주어진다. 그 다음 B줄에는 고장난 신호등의 번호가 하나씩 주어진다. www.acmicpc.net #include using namespace std; #define fastio ios_base::sync_with_stdio(0); cin.tie(0); int n, k, b, cnt, result = 987654321; int arr[100001]; bool check[100001]; int main() { fastio; cin >> n >> k >> b; for (int i = 0; i > arr[i];..
문제링크 : https://www.acmicpc.net/problem/20917 20917번: 사회적 거리 두기 Albert는 L대학에서 주최하는 Hackathon 행사 진행을 도와주기로 했는데, 사회적 거리 두기 방침에 따라 모든 참가자들을 최대한 멀리 떨어트려 좌석 배정을 해주려 한다. 이를 위해 아주 길다란 복 www.acmicpc.net #include using namespace std; #define fastio ios_base::sync_with_stdio(0); cin.tie(0); long long t, n, s, arr[200001]; int cnt = 0, result; void binary_search(int l, int h) { while (l = mid) //해당 차이값(거리)이..
문제링크 : https://www.acmicpc.net/problem/9417 9417번: 최대 GCD 첫째 줄에 테스트 케이스의 개수 N (1 < N < 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 양의 정수 M (1 < M < 100)개가 주어진다. 모든 수는 -231보다 크거나 같고, 231 -1보다 작거나 www.acmicpc.net #include using namespace std; #define fastio ios_base::sync_with_stdio(0); cin.tie(0); int n, result; string s, s_num; vectorarr; int gcd(int a, int b) //최대공약수 구하기 { if (b == 0) return a; else ..
문제링크 : https://www.acmicpc.net/problem/16564 16564번: 히오스 프로게이머 첫째 줄에는 캐릭터의 개수 N, 올릴 수 있는 레벨 총합 K가 주어진다. (1 ≤ N ≤1,000,000, 1 ≤ K ≤ 1,000,000,000) 다음 N개의 줄에는 현재 각 캐릭터의 레벨이 X1, X2, X3, ... , Xn 으로 주어진다. (1 ≤ Xi ≤ www.acmicpc.net #include using namespace std; #define fastio ios_base::sync_with_stdio(0); cin.tie(0); long long n, k, sum, result = 0; long long arr[1000001]; void binary_search(int l, i..
문제링크 : https://www.acmicpc.net/problem/9934 9934번: 완전 이진 트리 상근이는 슬로베니아의 도시 Donji Andrijevci를 여행하고 있다. 이 도시의 도로는 깊이가 K인 완전 이진 트리를 이루고 있다. 깊이가 K인 완전 이진 트리는 총 2K-1개의 노드로 이루어져 있다. (아래 www.acmicpc.net #include using namespace std; #define fastio ios_base::sync_with_stdio(0); cin.tie(0); int k, num; int arr[1024]; vectorresult[10]; void tree(int left, int right, int height) { if (left == right) { resu..
문제링크 : https://www.acmicpc.net/problem/24524 24524번: 아름다운 문자열 첫째 줄과 둘째 줄에 영어 알파벳 소문자로만 이루어진 문자열 $S$와 $T$가 각각 주어진다. ($1\leq \left|S \right|\leq 10^6$, $1\leq \left|T \right|\leq 26$, $\left|T \right|\leq \left|S \right|$, $\left|S \right|$와 $\left|T \ www.acmicpc.net #include using namespace std; #define fastio ios_base::sync_with_stdio(0); cin.tie(0); string s, t; vectorarr; int main() { fastio;..
문제링크 : https://www.acmicpc.net/problem/10655 10655번: 마라톤 1 젖소 박승원은 2번째 혹은 3번째 체크포인트를 건너뛸 수 있는데, 여기서 두 번째 체크포인트를 건너뛸 경우 경로는 (0,0) -> (11,-1) -> (10,0) 이 되며 거리는 14이다. 박승원은 이것보다 더 짧게 달릴 www.acmicpc.net #include using namespace std; #define fastio ios_base::sync_with_stdio(0); cin.tie(0); int n, cx, cy, sum = 0, result = 0, skip = 0; vector arr; int main() { fastio; cin >> n; cin >> cx >> cy; arr.pu..
문제링크 : https://www.acmicpc.net/problem/3085 char arr[51][51]; int n; int result; int check() { char c; for (int i = 0; i < n; i++) { int cnt = 1; for (int j = 0; j < n - 1; j++) { if (arr[i][j] == arr[i][j + 1]) //양옆이 같으면 증가 { cnt++; } else { result = max(result, cnt); //최댓값 갱신 cnt = 1; //다를 경우 다시 카운트 } result = max(result, cnt); //마무리 갱신 } } for (int j = 0; j < n; j++) { int cnt = 1; for (int i..
문제링크 : https://www.acmicpc.net/problem/2504 #include using namespace std; int main() { string s; cin >> s; stack stack; int result = 0, cnt = 1; for (int i = 0; i < s.length(); i++) { if (s[i] == '(') { cnt *= 2; stack.push('(');} //(x) = 2*x else if (s[i] == '[') { cnt *= 3; stack.push('[');} //[x] = 3*x else if (s[i] == ')') { if (stack.empty() || stack.top() != '(') { result = 0; break; } //스..
문제링크 : https://www.acmicpc.net/problem/2644 #include using namespace std; int n, m; int n1, n2; vectorv[101]; int x, y; int result = 0; bool check[101]; void dfs(int cur, int end, int cnt) { check[cur] = true; if (cur == end) //해당 값 찾으면 카운트 저장 { result = cnt; } for (int i = 0; i < v[cur].size(); i++) { if (!check[v[cur][i]]) //v[cur][i]는 다음 값을 가리킴 { dfs(v[cur][i], end, cnt+1); //다음 값 부터 n2까지 탐색하..