※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 25785번 문제인 Easy-to-Pronounce Words이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/25785
주어진 문자열이 자음과 모음이 번갈아 나타나는 구성이라면 1을, 그렇지 않으면 0을 출력하는 문제이다.
홀수번째 문자들이 모두 모음이고 짝수번째 문자들이 모두 자음이거나, 홀수번째 문자들이 모두 자음이고 짝수번째 문자들이 모두 모음이면 1을, 그렇지 않다면 0을 출력해 문제를 해결하자.
아래 코드와 같이 각 문자를 넣었을 때 해당 문자가 자음인지 모음인지를 리턴해주는 배열을 이용하면 구현을 편하게 할 수 있다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
using namespace std;
string s; int slen;
bool vowel[128];
int ans = 1;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
vowel['a'] = vowel['e'] = vowel['i'] = vowel['o'] = vowel['u'] = 1;
cin >> s; slen = s.length();
if (vowel[s[0]]) {
for (int i = 0; i < slen; i += 2) {
if (!vowel[s[i]]) ans = 0;
}
for (int i = 1; i < slen; i += 2) {
if (vowel[s[i]]) ans = 0;
}
}
else {
for (int i = 0; i < slen; i += 2) {
if (vowel[s[i]]) ans = 0;
}
for (int i = 1; i < slen; i += 2) {
if (!vowel[s[i]]) ans = 0;
}
}
cout << ans;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 11008 // C++] 복붙의 달인 (0) | 2022.11.10 |
---|---|
[BOJ 25859 // C++] Sort by Frequency (0) | 2022.11.10 |
[BOJ 25774 // C++] Simplified Calander System (0) | 2022.11.10 |
[BOJ 25704 // C++] 출석 이벤트 (0) | 2022.11.10 |
[BOJ 25270 // C++] 99 Problems (0) | 2022.11.10 |