CodingTest/Baekjoon

[baekjoon] 백준 5555번(파이썬): 반지

JunJangE 2022. 1. 13. 00:46

문제

 

5555번: 반지

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

www.acmicpc.net

알고리즘

- 반복문을 통해 반지를 확인한다.

- 반지는 시작과 끝이 연결된 상태이므로 (반지 + 반지)를 해줘 문제를 수행하기 편하게 바꾼다.

- 반복문을 통해 찾고자 하는 문자열이 반지에 포함되어 있는지 확인한다.

- 찾고자 하는 문자열이 반지에 포함되어 있으면 카운트한 후 반복을 멈춘다.

코드

import sys


word = list(map(str, sys.stdin.readline().rstrip("\n")))
n = int(sys.stdin.readline())
cnt = 0 # 찾고자하는 문자열을 포함한 반지의 개수

# 반복문을 통해 반지를 확인
for _ in range(n):
    target = list(map(str, sys.stdin.readline().rstrip("\n")))
    target += target # 반지는 시작과 끝이 연결된 상태

    # 반복문을 통해 찾고자하는 문자열이 반지에 포함되어 있는지 확인
    for i in range(20):
        if word == target[i:len(word) + i]:
            cnt += 1
            break

print(cnt)

github

 

GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com