문제
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
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 4889번(파이썬): 안정적인 문자열 (0) | 2022.01.15 |
---|---|
[baekjoon] 백준 13413번(파이썬): 오셀로 재배치 (0) | 2022.01.14 |
[baekjoon] 백준 1251번(파이썬): 단어 나누기 (0) | 2022.01.12 |
[baekjoon] 백준 2671번(파이썬): 잠수함식별 (0) | 2022.01.11 |
[baekjoon] 백준 1013번(파이썬): Contact (0) | 2022.01.10 |