๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/5525)
< IOIOI >
๋ฌธ์ ํ์ด
์ฒ์์๋ ๋ฌธ์์ด์ ์ ์ฒด ํ์ํ๋ฉด์ Pn๊ณผ ์ผ์นํ๋์ง๋ฅผ ํ์ธํ๋ค. ์ด ๊ณผ์ ์์ ์๋ธ ํ์คํฌ 50์ ์ ํ๋ํ๋ค.
50์ (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bf.readLine());
int s = Integer.parseInt(bf.readLine());
String str = bf.readLine();
String x = "";
for (int i = 0; i < n; i++) {
x += "IO";
}
x += "I";
int result = 0;
for (int i = 0; i < s - (n * 2); i++) {
if (str.charAt(i) == 'I') {
String temp = str.substring(i, i + (n * 2 + 1));
if (temp.equals(x)) {
result += 1;
}
}
}
System.out.println(result);
}
}
๋จ์ 50์ ์ ํ๋ํ๊ธฐ ์ํด ์๊ฐ์ ์ค์ฌ์ผ ํ๋ค.
์์์๋ ๊ตฌํ๋ ค๋ ๋ฌธ์์ด ๊ธธ์ด๋งํผ ๊ณ์ํด์ ๋ฌธ์์ด์ ์๋ผ์ ํ์ธํด์ ์ค๋ ๊ฑธ๋ ธ๋ ๊ฒ์ด์๋ค.
์ด ๋ถ๋ถ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฌธ์์ด์ ํ๋ฒ ํ์ํ๋ฉด์ IOI์ ๊ฐ์๋ฅผ ๊ตฌํ์ฌ ๋ต์ ๊ตฌํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bf.readLine());
int s = Integer.parseInt(bf.readLine());
String str = bf.readLine();
int cnt = 0;
int i = 0;
int result = 0;
while (i < s - 2) {
if (str.charAt(i) == 'I' && str.charAt(i + 1) == 'O' && str.charAt(i + 2) == 'I') {
cnt += 1;
i += 2;
} else {
if (cnt >= n) {
result += cnt - n + 1;
}
cnt = 0;
i += 1;
}
}
if (cnt >= n)
result += cnt - n + 1;
System.out.println(result);
}
}
Main
๋ณ์)
n : Pn์ n
s : str์ ๊ธธ์ด
str : ๋ฌธ์์ด
cnt : ๋ฌธ์์ด์์์ IOI ๊ฐ์
i : ๋ฌธ์์ด ํ์ index
result : str์ Pn์ด ํฌํจ๋์ด ์๋ ํ์
- n, s, str ์ ๋ ฅ
- ๋ฌธ์์ด์ ํ์
1) IOI๋ผ๋ฉด cnt์ฆ๊ฐ ๋ฐ index +2
2) IOI๊ฐ ์๋๋ผ๋ฉด ์ฌํ IOI๊ฐ ๋์จ ํ์(cnt)๊ฐ Pn๋งํผ ์๋ค๋ฉด result์ ๊ฐ ๋ํด์ค. Pn๋งํผ ์๋์ง ์๋์ง ์๊ด์์ด cnt๋ฅผ 0์ผ๋ก ์ด๊ธฐํ ํ index+1
- ๋ฌธ์์ด ํ์ ํ ๋ง์ง๋ง์ Pn์ด ๋์์ ์ ์์ผ๋ฏ๋ก ํ์ธ ํ result์ ๊ฐ ๋ํด์ฃผ๊ธฐ
- result ์ถ๋ ฅ
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 13975_ํ์ผ ํฉ์น๊ธฐ 3 (0) | 2023.07.14 |
---|---|
[Baekjoon] 2075_N๋ฒ์งธ ํฐ ์ (0) | 2023.07.13 |
[Baekjoon] 15900_๋๋ฌด ํ์ถ (0) | 2023.07.07 |
[Baekjoon] 15903_์นด๋ ํฉ์ฒด ๋์ด (0) | 2023.07.02 |
[Baekjoon] 16918_๋ด๋ฒ๋งจ (0) | 2023.06.30 |