※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 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 |