본문 바로가기
코딩/백준

알고리즘 - Python / 백준 - 5555번 : 반지

반응형

5555번: 반지 (acmicpc.net)

 

5555번: 반지

당신은 N개의 반지를 가지고 있다. 각각의 반지는 대문자 10 문자로 이루어진 문자열이 새겨져 있다. 반지는 문자열의 시작과 끝이 연결된 형태로 문자가 새겨져 있다. 반지에 각인된 문자열을

www.acmicpc.net

 


풀이

  • 반지에 문자열이 새겨져 있고 , 이 문자열이 존재하는지 확인하는 문제다.
  • 단 , 반지의 구조는 한 바퀴 도는 구조이기 때문에 좌우가 연결되어있다는 것을 생각해야 한다.
  • 찾고 싶은 문자열이 4글자 라면 0, 1, 2, 3번 옆으로 밀어 보면서 실제 그 문자열이 있는지 체크하면 된다.

 

import sys
fw = sys.stdin.readline().replace("\n","")
n = int(sys.stdin.readline())

def finds(fw, word):
    ans = 0
    if word.find(fw) >= 0:
        ans = 1
    for i in range(len(fw)):
        word = word[-1] + word[0:len(word)-1]
        if word.find(fw) >= 0:
            ans = 1
            break
    return ans

real_ans = 0
for _ in range(n):
    word = sys.stdin.readline().replace("\n", "")
    real_ans += finds(fw,word)
print(real_ans)

 

 

 

 

 

반응형