본문 바로가기
알고리즘

알고리즘 스터디

by COCO1337 2020. 8. 3.

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분정도 걸린 것 같네요

반응형

'알고리즘' 카테고리의 다른 글

알고리즘 스터디  (0) 2020.08.05
알고리즘 스터디  (0) 2020.08.04
알고리즘 스터디(미완)  (0) 2020.07.30
알고리즘 스터디  (0) 2020.07.29
알고리즘 스터디  (0) 2020.07.28

댓글