PS/BOJ

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

s_omi 2024. 7. 19. 09:35
728x90
반응형
SMALL

✏️ 문제

 

문제 파악

보자마자 아 그냥 find랑 rfind 써서 인덱스로 비교하면 되겠구나 했는데 결국 풀지 못했다.

질문 게시판에 있는 모든 반례

  1. UCPCC
  2. UCPPC
  3. UUCPC
  4. CUCPC
  5. UPCPC

를 적용해봤을 때 다 잘 나왔는데 .. 

그래서 주어진 문장이 "UPCP" 문자열의 index로 비교하여 차례대로 나오는 지 확인하는 방법으로 풀었다.

 

알고리즘

  • 그리디 알고리즘
  • 문자열

 

 

코드

  • 실패한 코드 - 반례 좀 찾아주세요 .. 
s = input()
c_index = -1
p_index = -1

for i, char in enumerate(s):
  if char == 'P' and i < s.rfind('C'):
    p_index = i

for i, char in enumerate(s):
  if char == 'C' and s.find('U') < i < p_index:
    c_index = i

if s.find('U') < c_index < p_index < s.rfind('C'):
  print("I love UCPC")
else: 
  print("I hate UCPC")
  • 성공 코드
s = input()
target = "UCPC"
index = 0

for char in s:
    if char == target[idx]:
        index += 1
        if index == len(target):
            print("I love UCPC")
            break
else:
    print("I hate UCPC")

 

728x90
반응형
LIST

'PS > BOJ' 카테고리의 다른 글

[Python] 19941번 햄버거 분배  (0) 2024.07.19
[Python] 2012번 등수 매기기  (0) 2024.07.19
[Python] 16435번 스네이크버드  (0) 2024.07.17
[Python] 1417번 국회의원 선거  (0) 2024.07.17
[Python] 2847번 게임을 만든 동준이  (0) 2024.07.16