https://www.acmicpc.net/problem/1915
풀이: b[i][t] : i , t 가 오른쪽 아래 꼭짓점인 정사각형의 한 변의 길이
i, t가 0이라면, 정사각형을 만들 수 없으므로 0
i, t 의 수가 1이라면,
b[i][t] = (b[i - 1][t], b[i][t - 1], b[i - 1][t - 1] 의 최솟값) + 1
넓이 이므로 b[i][t] 중 가장 큰 값을 제곱하여 출력한다.
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include <iostream>using namespace std; int n, m, i, t, a, b[1002][1002], s = 0; int main() { cin >> n >> m; for (i = 0; i < n; i++) for (t = 0; t < m; t++) { scanf_s("%1d",&a); if (a) { if (i && t) { b[i][t] = b[i - 1][t] > b[i][t - 1] ?
https://www.acmicpc.net/problem/2252
풀이: b[i] : i 보다 작은 사람들의 수
b[i] 가 0인 i를 맨 앞에 세운다.
i보다 큰 학생들을 t라고 할 때, b[t] 값을 각각 -1 해준다.
모든 학생들을 세울때까지 반복한다.
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include <iostream>#include <vector>using namespace std; int n, m, i, q, w, b[32002], c[32002]; int main() { cin >> n >> m; vector<vector<int>> a(n + 1); vector<int> v; for (i = 0; i < m; i++) { cin >> q >> w; a[q].
https://www.acmicpc.net/problem/2420
풀이: 두 유명도의 차이를 절댓값으로 출력한다.
두 도메인의 크기가 매우 크므로 long long 으로 받자. long long 형으로 받았으므로 abs 가 아닌 llabs를 쓰자 코드: 사용언어 : c++
1 2 3 4 5 6 7 #include <iostream>using namespace std; long long a, b; int main() { cin >> a >> b; cout << llabs(a - b) << endl; }
https://www.acmicpc.net/problem/2530
풀이: 요리에 필요한 시간 D를 초에 더한다.
초 C를 60으로 나눈 몫을 분에 더한다. 초는 나눈 나머지가 된다.
분 B를 60으로 나눈 몫을 시에 더하다. 분은 나눈 나머지가 된다.
시를 24로 나눈 나머지로 바꾼다.
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 #include <iostream>using namespace std; int a, b, c, d; int main() { cin >> a >> b >> c >> d; c += d, b += c / 60, c %= 60, a += b / 60, b %= 60, a %= 24; printf("%d %d %d", a, b, c); }
https://www.acmicpc.net/problem/5597
풀이: 과제를 낸 28 명을 기록한다.
30 명 중 기록이 안돼어있는 학생 2명을 출력한다.
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 9 10 #include <iostream>using namespace std; int a[31], i = 28, b; int main() { while (i--) { cin >> b; a[b] = 1; } for (i = 1; i <= 30; i++) if (!a[i]) cout << i << endl; }