컴굥일지
[BOJ/백준 15904][C++] UCPC는 무엇의 약자일까? 본문
반응형
문제
https://www.acmicpc.net/problem/15904
문제 내용
문자열을 입력받아 임의의 문자를 적절히 제거하여 UCPC를 만들 수 있는지 없는지를 판단하는 문제이다.
가능하다면 I love UCPC를, 불가능하다면 I hate UCPC를 출력하면 된다.
문제 풀이
공백이 포함된 문자열을 입력받기 위해 getline() 함수를 사용한다.
이후 find() 함수를 사용하여 U C P C의 위치를 받는다.
참고로 find() 함수는 대상문자열.find(찾는 대상, 시작 위치)의 방식으로도 쓸 수 있다.
(찾는 대상이 존재하지 않으면 -1을 반환한다.)
앞의 문자의 위치를 뒤의 문자의 시작 위치로 주면, find() 함수가 반환하는 위치가 U <C <P <C 가 된다.
코드
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
//입력
string str="";
getline(cin, str); //공백이 있는 문장을 입력받기 위함
//문제 풀이
int n1, n2, n3, n4; //각 문자의 위치
n1 = str.find('U');
n2 = str.find('C',n1);
n3 = str.find('P',n2);
n4 = str.find('C',n3);
//결과 출력
if (n1 == -1 || n2 == -1 || n3 == -1 || n4 == -1) {
cout << "I hate UCPC";
}
else {
cout << "I love UCPC";
}
}
문제 코드 설명
1) 입력
공백이 포함된 문자열을 입력 받기 위해 getline()을 사용한다.
2) 문제 해결
find()함수를 사용한다.
3) 결과 출력
-1이 하나라도 존재하면 I hate UCPC를, 모두 -1이 아니라면 I love UCPC를 출력한다.
반응형
'알고리즘 > 코테 문제' 카테고리의 다른 글
[BOJ/백준 8892][C++] 팰린드롬 (0) | 2022.01.21 |
---|---|
[BOJ/백준 11091][C++] 알파벳 전부 쓰기 (0) | 2022.01.21 |
[BOJ/백준 4583][C++] 거울상 (0) | 2022.01.18 |
[BOJ/백준 9009][C++] 피보나치 (0) | 2022.01.17 |
[BOJ/백준 1026][C++] 보물 (0) | 2022.01.14 |
Comments