정규표현식으로 대문자만 간추렸을 때, UCPC가 되면 되는 줄 알았는데 문제가 두개 있다.
1) set(['UCPC'])하면서 순서가 바뀐다는 것
2) 'UCCPC' 같은 것도 답이 된다는 것...
que에 UCPC를 담아두고, for문을 돌면서 대문자열에 순서대로 나오는 지 지워줌.
que가 empty가 될 때까지 or 대문자열을 다 돌 때까지 반복
import re
if __name__=='__main__':
S = input().replace(' ','')
pressed = re.findall('[A-Z]',S)
check = []
que = ['U','C','P','C']
i=0
while que:
if i>= len(pressed): break
char = pressed[i]
if char == que[0]:que.pop(0)
i+=1
if que==[] : print('I love UCPC')
else : print('I hate UCPC')
_________________________________ 오답 풀이 __________________________________________
if : break문만 순서를 맨 뒤로 보냈을 뿐인데, 인덱스 에러가 났다. 길이가 자연수일 때는 문제가 없어보였는데,
에러가 나는 경우를 보니, 대문자를 추출한 pressed가 empty list일 경우, pressed[0]을 찾을 수 없어, 인덱스 에러가 난다.
코너 케이스: pressed = [ ]
import re
if __name__=='__main__':
S = input().replace(' ','')
pressed = re.findall('[A-Z]',S)
check = []
que = ['U','C','P','C']
i=0
while que: ## suppose, len(pressed)==4, i =3
char = pressed[i] ## char = pressed[3]
if char == que[0]:que.pop(0) ## que not empty니까 가능
i+=1 ## i = 4
if i>= len(pressed): break ## while문 빠져나감
##89%에서 인덱스 에러가 남
if que==[] : print('I love UCPC')
else : print('I hate UCPC')
'공부하는 것들 > 알고리즘' 카테고리의 다른 글
백준 17262 : 팬덤이 넘쳐흘러(그리디)*** (0) | 2021.03.05 |
---|---|
백준 17224 : APC는 왜 서브태스크 대회가 되었을까?(그리디) (0) | 2021.02.26 |
백준 2839 : 설탕 배달(그리디) (0) | 2021.02.25 |
백준 2828 : 사과 담기 게임(그리디) ** (0) | 2021.02.25 |
백준 5585 : 거스름돈 (그리디) (0) | 2021.02.24 |