※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 22428번 문제인 Step Aerobics이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/22428

 

연속한 두 스텝이 올바른 동작을 구성하려면 (1) 각 스텝의 두 번째 문자가 서로 일치해야하며 (2) 첫 번째 문자가 서로 달라야 함을 알 수 있다. 이를 이용해 처음서부터 두 개의 스텝씩 묶어 읽어나갈 때 "올바른 동작"이 몇 개 있는지를 세어 문제를 해결하자.

 

같은 동작은 여러 "올바른 동작"에 포함될 수 없음에 유의하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int N;
vector<string> vec;

void solve() {
	int ans = 0;
	vec.clear();
	for (int i = 0; i < N; i++) cin >> vec.emplace_back();
	for (int i = 1; i < N; i++) {
		if (vec[i].back() == vec[i - 1].back() && vec[i].front() != vec[i - 1].front()) ans++, i++;
	}
	cout << ans << '\n';
}

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> N;
	while (N) {
		solve();
		cin >> N;
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 20046 // C++] Road Reconstruction  (0) 2024.06.17
[BOJ 13270 // C++] 피보나치 치킨  (1) 2024.06.16
[BOJ 17086 // C++] 아기 상어 2  (1) 2024.06.14
[BOJ 18119 // C++] 단어 암기  (0) 2024.06.13
[BOJ 17225 // C++] 세훈이의 선물가게  (0) 2024.06.12

+ Recent posts