목차
- 문제
- 내가 푼 방법
- 자바 코드
- 결과 및 회고
1. 문제
https://www.acmicpc.net/problem/5525
2. 내가 푼 방법
다른 분의 풀이를 보고 해결한 문제이다.
이 문제의 관건은 IOI 문자열과 매칭될 경우, 처음 I와 매칭되는 위치에서 + 2를 해주어야 한다는 것이다.
3. 자바 풀이
깃허브 풀이 주소
https://github.com/geujeog/BOJ/blob/main/B5525.java
import java.util.*;
import java.io.*;
class Main {
static int N;
static int M;
static String line;
static int result;
public static void main (String[] args) throws IOException {
init();
solution();
print();
}
public static void solution() {
int cnt = 0;
for (int i = 0; i < M-2; i++) {
if (line.charAt(i) == 'I' && line.charAt(i+1) == 'O' && line.charAt(i+2) == 'I') {
i++;
cnt++;
if (cnt == N) {
cnt--;
result++;
}
}
else cnt = 0;
}
}
public static void print() throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write(result+"");
bw.flush();
bw.close();
}
public static void init() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
M = Integer.parseInt(br.readLine());
line = br.readLine();
br.close();
}
}
4. 결과 및 회고
처음 풀었을 때는 문자열 함수를 사용하는 방법만 떠올렸다. 당연한 말이지만,, 코테 문제가 함수 사용할 줄 아는지를 확인하는 일은 거의 없으므로,, 함수를 사용하는 것보다 어떤 코드를 구현해야 할지 고민해보장.
'문제풀이 > 백준' 카테고리의 다른 글
[JAVA] BOJ 백준 1103번 - 게임 (1) | 2023.10.29 |
---|---|
[JAVA] BOJ 백준 2615번 - 오목 (0) | 2023.10.01 |
[JAVA] BOJ 백준 17135번 - 캐슬 디펜스 (0) | 2023.10.01 |
[JAVA] BOJ 백준 2011번 - 암호코드 (0) | 2023.09.27 |
[JAVA] BOJ 백준 16928번 - 뱀과 사다리 게임 (0) | 2023.09.27 |
댓글