[C++] 백준 15904번 풀이 (UCPC는 무엇의 약자일까?)

정민경·2023년 1월 12일
0

baekjoon

목록 보기
13/57
post-thumbnail

- 문제 (15904번) : UCPC는 무엇의 약자일까?

  • 입력받은 다양한 문자열로 'UCPC' 라는 약자를 만들 수 있는지 판별해 출력하는 문제

- 입력 및 출력

[입력]

  • 첫번째 줄에 문자열 입력.
    - 문자열은 알파벳 대소문자, 공백으로 구성
    - 문자열의 길이는 최대 1,000자
    - 문자열의 맨 앞과 맨 끝에 공백이 있는 경우 X
    - 공백이 연속해서 2번 이상 주어지는 경우 X

[출력]

  • 첫번째 줄에 입력으로 주어진 문자열을 적절이 축약해 "UCPC"로 만들 수 있는지 판별해 출력
    - ⅰ) 만들 수 있으면 --> "I love UCPC" 출력
    - ⅱ) 만들 수 없으면 --> "I hate UCPC" 출력

- 문제 풀이

  • 문자열을 입력받아 대문자 'U', 'C', 'P' 가 있으면 배열에 저장해 배열의 처음부터 끝까지 돌면서 "UCPC" 라는 문자열이 있는지 판단하는 방법으로 해결하였다.
  1. 'U', 'C', 'P' 가 있는지 확인 후 배열에 저장
  1. "UCPC" 순서대로 1에서 저장한 배열에 있는지 확인
  1. "UCPC" 문자열이 있다면, 내가 해결한 방식에서는 a == 4 이면
    "I love UCPC" 출력
    없다면 "I hate UCPC" 출력
  • 이 문제를 풀면서 나는 처음에 std::cin >> S 로 입력받았었다.
    하지만 이렇게 입력을 받게 되면 한줄에 입력을 받더라도 공백을 인식하지 못해 첫번째 단어만 입력이 받아지게 되었다.

    이것을 해결하기 위해 std::getlind(std::cin, S) 로 입력받아 공백을 포함한 문자열을 입력받게 되었다.

  • 대소문자를 확인하는 함수는 c++의 "cctype" 헤더에 정의되어있는 "isupper()" 함수를 사용하였다.


- 최종 코드

0개의 댓글