https://www.acmicpc.net/problem/15904
풀이
# check는 UCPC로 축약 할 수 있는 문자열인지를 정하는 불린 변수이다.
for i in "UCPC":
if i in word:
word = word[word.index(i)+1:]
else:
check = False
break
UCPC가 주어진 문자열에 속해 있는지와 "축약" 했을 경우 UCPC가 순서대로 나오는지가 중요하다.
UCPC의 각 문자를 순서대로 if문을 통해 주어진 문자열에 존재하는지 확인해본다.
if i in word:
word = word[word.index(i)+1:]
UCPC의 문자 중 하나가 문자열에 속해있다면 여태까지 비교한 문자열의 앞부분을 지워서 word를 새로 정의해준다.
예를 들어 "Union of Computer Programming contest club Contest" 가 문자열로 주어졌다면 U를 찾은 뒤,
U를 찾은 위치로부터 앞부분을 지워준다. word는 U가 없어진 "nion of Computer Programming contest club Contest" 가 된다. 다음 C를 찾아서 이전단계와 동일하게 삭제해준다. 그럼 word는 "omputer Programming contest club Contest" 가 된다. 이 과정을 UCPC의 각 문자들로 찾아본다. 만일 모든 UCPC를 찾을 수 있다면 이 문자열은 "축약"을 통해 UCPC가 될 수 있다.
제출코드
word = input()
check = True
for i in "UCPC":
if i in word:
word = word[word.index(i)+1:]
else:
check = False
break
if check: print("I love UCPC")
else: print("I hate UCPC")
출력결과
'백준 > 그리디' 카테고리의 다른 글
[백준][Python] 2845번 파티가 끝나고 난 뒤 - 코팩 (0) | 2023.02.20 |
---|---|
[백준] 15552번 빠른 A+B - 파이썬 (0) | 2022.02.28 |
[백준] 8979번 올림픽 -파이썬 (0) | 2022.02.24 |
[백준] 2798번 블랙잭 - 파이썬 (0) | 2022.02.21 |
[백준] 1978번 소수 찾기 - 파이썬 (0) | 2022.02.20 |