Google Kick start 2020 Round C 1번째 문제, Countdown 입니다.
자연수 K와 N개의 자연수가 주어지고 i번째 배열을 Ai라고 할 때,
A의 부분 배열이 K부터 1까지 -1씩 등차가 이루어지는 것의 개수를 구하는 것입니다.
C++를 사용한 제 풀이입니다
#include <iostream>
#include <algorithm>
#include <vector>
#include <numeric>
#include <stack>
using namespace std;
int n, k, t;
void solve() {
cin >> n >> k;
vector<int> a(n, 0);
int result = 0;
t = k;
for (int i = 0; i < n; ++i) {
cin >> a[i];
if (a[i] != t) {
t = k;
}
if (a[i] == t) {
--t;
if (t == 0) {
++result;
t = k;
}
}
}
cout << result << "\n";
return;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int t;
cin >> t;
for (int i = 1; i <= t; ++i) {
cout << "Case #" << i << ": ";
solve();
}
}
간단하게 입력 받아오면서 원하는 배열이 나오는지 체크하는 방식으로 풀었고
시간은 10분정도 걸린 것 같네요
반응형
댓글