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

 

이번에 볼 문제는 백준 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

+ Recent posts