※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 5698번 문제인 Tautogram이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/5698
5698번: Tautogram
선영이는 시를 매우 좋아한다. 최근에 선영이는 시집을 읽다가 매우 매력적인 시형을 찾았다. Tautogram은 매우 특별한 형태의 두운법으로, 인접한 단어가 같은 글자로 시작하는 것을 말한다. 문장
www.acmicpc.net
주어지는 각 문장을 getline으로 줄단위로 읽은 뒤, 공백(' ')을 토큰으로 단어를 구분한 후 각 단어의 첫글자가 같은 영어 알파벳인지를 확인해 문제를 해결할 수 있다.
toupper을 이용하면 주어진 영문자를 대문자로 일관되게 표현할 수 있다. toupper을 이용하지 않더라도 아스키 코드 값의 덧셈을 이용해 이를 직접 구현할 수도 있다.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
using namespace std;
string s;
int slen;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
getline(cin, s);
while (s != "*") {
slen = s.length();
char c = toupper(s[0]);
bool chk = 1;
for (int i = 0; i < slen; i++) {
if (s[i] == ' ') {
if (toupper(s[i + 1]) != c) chk = 0;
}
}
if (chk) cout << "Y\n";
else cout << "N\n";
getline(cin, s);
}
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 11637 // C++] 인기 투표 (0) | 2023.02.21 |
---|---|
[BOJ 9693 // C++] 시파르 (0) | 2023.02.21 |
[BOJ 6550 // C++] 부분 문자열 (0) | 2023.02.21 |
[BOJ 12518 // C++] Centauri Prime (Small2) (0) | 2023.02.21 |
[BOJ 24039 // C++] 2021은 무엇이 특별할까? (0) | 2023.02.21 |