https://www.acmicpc.net/problem/5637
입력받은 단어들 중에 제일 긴 단어를 출력하는 문제. 이때 단어는 알파벳과 하이픈만으로 구분하기 때문에 이에 유의해야한다.
공백을 기준으로 입력받고, 알파벳과 하이픈을 제거한 후에, 길이를 비교하여 풀었다.
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
string preprocess(string str) {
string result = "";
for (auto iter = str.begin(); iter != str.end(); iter++) {
if (isalpha(*iter) || *iter == '-') {
result += *iter;
}
}
return result;
}
int main () {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
string max = "";
string str;
while (true) {
cin >> str;
if (str == "E-N-D") break;
str = preprocess(str);
max = max.length() < str.length() ? str : max;
}
for (auto iter = max.begin(); iter != max.end(); iter++)
*iter = tolower(*iter);
cout << max;
}
'coding_test > BAEKJOON' 카테고리의 다른 글
백준 9093번 C++ 풀이 (0) | 2022.01.02 |
---|---|
백준 12065번 C++ 풀이 (0) | 2022.01.02 |
백준 10826번 Python 풀이 (0) | 2021.12.24 |
백준 2749번 C, C++ 풀이 (0) | 2021.12.24 |
백준 9471번 C++ 풀이 (0) | 2021.12.24 |