QA & Engineering Blog

A Blog about Quality ยท Automation ยท Engineering

๐Ÿ  ํ™ˆ์œผ๋กœ

[Silver I] IOIOI - 5525

๋ฌธ์ œ ๋งํฌ

์„ฑ๋Šฅ ์š”์•ฝ

๋ฉ”๋ชจ๋ฆฌ: 34368 KB, ์‹œ๊ฐ„: 268 ms

๋ถ„๋ฅ˜

๋ฌธ์ž์—ด

์ œ์ถœ ์ผ์ž

2025๋…„ 7์›” 2์ผ 10:41:54

๋ฌธ์ œ ์„ค๋ช…

N+1๊ฐœ์˜ I์™€ N๊ฐœ์˜ O๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉด, I์™€ O์ด ๊ต๋Œ€๋กœ ๋‚˜์˜ค๋Š” ๋ฌธ์ž์—ด์„ PN์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • P1 IOI
  • P2 IOIOI
  • P3 IOIOIOI
  • PN IOIOI...OI (O๊ฐ€ N๊ฐœ)

I์™€ O๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด S์™€ ์ •์ˆ˜ N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, S์•ˆ์— PN์ด ๋ช‡ ๊ตฐ๋ฐ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” S์˜ ๊ธธ์ด M์ด ์ฃผ์–ด์ง€๋ฉฐ, ์…‹์งธ ์ค„์— S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

S์— PN์ด ๋ช‡ ๊ตฐ๋ฐ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ’ก Solutions

๐Ÿ“„ IOIOI.py

import sys
input = sys.stdin.readline

n = int(input())
m = int(input())
s = input().strip()

count = 0  # ํ˜„์žฌ๊นŒ์ง€ 'OI'๊ฐ€ ๋ช‡ ๋ฒˆ ๋ฐ˜๋ณต๋๋Š”์ง€
result = 0  # ๊ฒฐ๊ณผ: ๋ช‡ ๊ฐœ์˜ Pn ํŒจํ„ด์„ ์ฐพ์•˜๋Š”์ง€
i = 0

while i < m - 1:
    if s[i] == 'I' and s[i + 1] == 'O':
        count = 0
        while i + 2 < m and s[i + 1] == 'O' and s[i + 2] == 'I':
            count += 1
            i += 2  # 'OI' ๋‹จ์œ„๋กœ ๊ฑด๋„ˆ๋œ€
            if count == n:
                result += 1
                count -= 1  # ์ค‘์ฒฉ ๊ณ ๋ ค
        i += 1
    else:
        i += 1

print(result)