[ BOJ / Python ] 15904번 UCPC는 무엇의 약자일까?

황승환·2021년 12월 21일
0

Python

목록 보기
59/498

이번 문제는 입력받은 문자열을 검사하며 UCPC 중에 포함되는 문자가 있을 경우 answer를 True로 두고 문자열을 그 다음 문자부터 시작하도록 슬라이싱하여 중복 체크를 하지 않도록 해주고, 만약 포함되지 않았을 경우 answer를 False로 갱신하여 해결하였다.

  • 문자열 s를 입력받는다.
  • U,C,P,C를 포함하는 배열 want를 선언한다.
  • UCPC로 줄일 수 있는지의 여부를 저장할 boolen형 변수 answer를 True로 선언한다.
  • want배열의 길이만큼 반복하는 i에 대한 for문을 돌린다.
    -> 만약 want[i]가 s에 있을 경우,
    --> answer를 True로 갱신한다.
    --> s의 want[i]에 해당하는 인덱스를 idx변수에 저장한다.
    --> s를 s[idx+1:]로 갱신한다. 이는 중복으로 문자열을 읽는 것을 막기 위함이다.
    -> want[i]가 s에 없을 경우 answer를 False로 갱신하고 for문을 종료한다.
  • 만약 answer가 True라면 "I love UCPC"를 출력한다.
  • 만약 answer가 False라면 "I hate UCPC"를 출력한다.

Code

s=str(input())
want=['U', 'C', 'P', 'C']
answer=True
for i in range(len(want)):
    if want[i] in s:
        answer=True
        idx=s.index(want[i])
        s=s[idx+1:]
    else:
        answer=False
        break
if answer==True:
    print("I love UCPC")
else:
    print("I hate UCPC")

profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글