alpyrithm_알파이리즘

[알고리즘][Python] 백준(BOJ) 15904 UCPC는 무엇의 약자일까?_파이썬 본문

Algorithm/백준 알고리즘_Python

[알고리즘][Python] 백준(BOJ) 15904 UCPC는 무엇의 약자일까?_파이썬

알파이 2020. 11. 18. 08:47

 

15904 UCPC는 무엇의 약자일까?    www.acmicpc.net/problem/15904

 

15904번: UCPC는 무엇의 약자일까?

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

www.acmicpc.net

 

 

문제 풀기 전 공부할 것 : 그리디 알고리즘, 문자열

 

 

 

 

 

 

 

풀이

<내용>

  • 문자열을 입력받는다
  • string에 f라는 문자가 있으면 f의 index를 return 하고 없으면 -1을 return 하는 find 함수를 정의한다.
  • 찾을 문자를 fs에 저장한다
  • string을 돌면서 U C P C가 차례로 있는지 확인한다.
    • string에 해당 문자가 있다면 string을 해당 문자보다 뒤에 있는 문자로 저장한다.
    • string에 해당 문자가 없다면 flag에 False를 저장한다.
  • flag가 True면 I love UCPC를 출력하고 False면 I hate UCPC를 출력한다.

 

 

<코드>

string = input()

def find(string, f):
    if f in string:
        return string.index(f)
    return -1

fs = ['U', 'C', 'P', 'C']

flag = True

for i in range(4):
    idx = find(string, fs[i])
    if idx != -1:
        string = string[idx+1:]
    else:
        flag = False
        break
        
if flag:
    print('I love UCPC')
else:
    print('I hate UCPC')

 

 

 

 

 

 

 

 

 

728x90
반응형
Comments