코드
#include <iostream>
#include <string>
using namespace std;
string s;
void FASTIO() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
}
int main() {
FASTIO();
while(getline(cin, s)) {
// 대문자를 소문자로 바꾸기
for(int i = 0; i < s.size(); i++) {
if(s[i] >= 65 && s[i] <= 90) {
s[i] += 32;
}
}
// find함수는 찾는 값이 없으면 큰 값을 반환 => string::npos
// long long으로 저장
long long idx = 0;
idx = s.find("problem");
// string::npos가 아니면 찾는 값이 있는 것
if(idx != string::npos) {
cout << "yes\n";
} else {
cout << "no\n";
}
}
return 0;
}
풀이
getline(cin, s)로 한 줄 받기를 한 후 대문자를 모두 소문자로 변경해준 다음 find 함수를 통해 problem을 찾아주었다. while문 조건 부분에 getline(cin, s)을 넣으면, 아무 값도 넣지 않았을 때 eof를 자동으로 인식해준다고 한다. vscode에서 인식 못하는 이유는 \n가 입력되기 때문이라는 것을 본 적이 있다. 정답이 되는 걸 보면 이 말이 맞는 것 같지만, 교차 검증이 필요할 거 같다. 그리고 find 함수를 이용해 problem을 찾아주었다. find함수를 사용했을 때 찾는 값이 없으면 string::npos를 반환한다. 이 값은 매우 큰 수라 long long으로 저장해두었다.
find함수와 getline() 함수 사용법을 다시 한 번 상기할 수 있었던 문제. 정규식으로 한 큐에 푸신 분도 있다. 능력자가 너무 많아...
정규식 풀이
https://blog.naver.com/jinhan814/222093517655
EOF관련 참조
'백준' 카테고리의 다른 글
[백준] 26566번 Pizza C++ 코드 (0) | 2024.12.18 |
---|---|
[백준] 29813번 최애의 팀원 C++ 코드 (0) | 2024.12.17 |
[백준] 25175번 두~~부 두부 두부 C++ 코드 (2) | 2024.12.17 |
[백준] 2312번 수 복원하기 C++ 코드 (2) | 2024.12.10 |
[백준] 2912번 백설공주와 난쟁이 C++ 코드 (0) | 2024.12.01 |