https://www.acmicpc.net/problem/2217
풀이: a[i] : i 무게를 들 수 있는 로프의 갯수
로프의 중량보다 가벼운 물체는 들 수 있으므로 중량보다 낮은 값은 전부 +1 씩 해준다.
a[i] * i 의 값이 가장 높은 값을 출력한다.
i 무게를 들 수 있는 로프의 갯수가 a[i] 개 일 때, a[i] 개의 로프를 이용하여 중량이 a[i] * i 인 물체를 들 수 있기 때문에)
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 9 10 11 12 #include <iostream>using namespace std; int n, m, i, s = 0, a[10002]; int main() { cin >> n; while (n--) { cin >> m; while (m) a[m--]++; } for (i = 1; i < 10001; i++) s = s < i * a[i] ?
https://www.acmicpc.net/problem/11576
풀이: A진법으로 나타낸 수를 10진법으로 바꾼 후 바꾼 10진법 수를 다시 B진법으로 바꿔 출력한다.
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <iostream>#include <vector>using namespace std; int a, b, m, n, s; vector<int> v; int main() { cin >> a >> b >> m; while (m--) { cin >> n; s = s * a + n; } while (s) v.
https://www.acmicpc.net/problem/2506
풀이: 연속으로 맞춘다면 추가 점수가 있게 하여 총점을 출력한다.
코드: 사용언어 : c++
1 2 3 4 5 6 7 8 9 10 11 12 #include <iostream>using namespace std; int n, s, c = 0, a; int main() { cin >> n; while (n--) { cin >> a; if (a) s += a + c, c++; else c = 0; } cout << s << endl; }