[Python] 백준/BOJ 5555번: 반지 (Silver 5)

2025. 1. 29. 10:00·Algorithm/백준 (BOJ)

💻 Problem

문제 보러 가기

 

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

찾고자하는 문자열이 주어졌을 때 그 문자열을 포함하는 반지가 몇 개인지를 발견하는 프로그램을 작성하라.

 

✏️ Solution 1

import sys
input = sys.stdin.readline

find = input().rstrip()
n = int(input())
length = len(find)
cnt = 0

for _ in range(n):
    ring = input().rstrip()

    for i in range(len(ring)):
        target = ''

        if i > len(ring) - length:
            target = ring[i:] + ring[:(i + length) % len(ring)]
        else:
            target = ring[i:i + length]

        if find == target:
            cnt += 1
            break

print(cnt)

보이는 그대로 직관적으로 풀었다.

index를 하나씩 살펴가며 find 문자열을 찾았고, 만약 target이 반지 길이를 넘어가게 되면 두 문자열을 따로 계산한 후 합쳤다.

target과 find가 일치하면 해당 반지는 탐색을 종료했다.

 

✏️ Solution 2

import sys
input = sys.stdin.readline

find = input().rstrip()
n = int(input())
cnt = 0

for _ in range(n):
    ring = input().rstrip()
    if find in ring * 2:
        cnt += 1

print(cnt)

다른 사람들 풀이를 보니 이렇게 풀 수도 있었다..

반지가 두 배라면 반지의 시작과 끝이 연결된 형태라는 점을 고려하지 않아도 된다.

그저 find 문자열이 반지 * 2 안에 존재하는지 if문 하나만 작성하면 된다.

반응형

'Algorithm > 백준 (BOJ)' 카테고리의 다른 글

[Python] 백준/BOJ 7576번: 토마토 (Gold 5)  (0) 2025.02.01
[Python] 백준/BOJ 1012번: 유기농 배추 (Silver 2)  (0) 2025.01.31
[Python] 백준/BOJ 28913번: 최애의 팀원 (Silver 3)  (0) 2025.01.28
[Python] 백준/BOJ 23757번: 아이들과 선물 상자 (Silver 2)  (0) 2025.01.27
'Algorithm/백준 (BOJ)' 카테고리의 다른 글
  • [Python] 백준/BOJ 7576번: 토마토 (Gold 5)
  • [Python] 백준/BOJ 1012번: 유기농 배추 (Silver 2)
  • [Python] 백준/BOJ 28913번: 최애의 팀원 (Silver 3)
  • [Python] 백준/BOJ 23757번: 아이들과 선물 상자 (Silver 2)
올콩
올콩
콩 심은 데 콩 난다
  • 올콩
    콩스토리
    올콩
  • 전체
    오늘
    어제
    • 분류 전체보기 (147) N
      • SSAFY (10)
      • Algorithm (73) N
        • 이론 (5)
        • 백준 (BOJ) (67) N
        • 프로그래머스 (1)
      • Language (9)
        • JavaScript (0)
        • TypeScript (0)
        • Java (9)
        • Python (0)
      • Library & Runtime (15)
        • React (13)
        • Node.js (2)
      • Framework (9)
        • 이론 (2)
        • Next.js (3)
        • Vue (4)
      • DevOps (3)
        • Git (3)
      • WEB (18)
        • HTML (9)
        • error (7)
        • etc (2)
      • Computer (5)
        • 자격증 (2)
        • tip (2)
        • etc (1)
      • CS (5)
        • Network (1)
        • Blockchain (4)
  • 블로그 메뉴

    • GitHub
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    우선순위큐
    github
    SSAFY
    파이썬
    dfs
    vue
    렌더링최적화
    kakaomap
    React
    Error
    딕셔너리
    오블완
    Next.js
    티스토리챌린지
    DP
    싸피
    누적합
    블록체인
    bfs
    Algorithm
    카카오맵
    해시
    Java
    html5
    백준
    SSAFYcial
    알고리즘
    강의
    재귀
    자바
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
올콩
[Python] 백준/BOJ 5555번: 반지 (Silver 5)
상단으로

티스토리툴바