문제링크 : https://www.acmicpc.net/problem/19941
import java.io.*;
import java.util.*;
public class BOJ19941 {
static int n, k, ans;
static String[] input;
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st= new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
k = Integer.parseInt(st.nextToken());
input = br.readLine().split("");
for (int i=0; i<n; i++){
if (input[i].equals("P")){
for (int j=i-k; j<=i+k; j++){
if (j<0 || j>=n) continue;
if (input[j].equals("H")){
input[j] = "A";
ans ++;
break;
}
}
}
}
System.out.println(ans);
}
}
해설 : 사람을 만날때마다 idx-k~idx+k의 범위를 탐색해 햄버거를 만나면 카운트해주고, 그 배열을 완전히 다른 문자열로 바꿔줌으로써 중복탐색이 되지않게 해주면된다.
'Algorithm > Java' 카테고리의 다른 글
[백준] 2146 다리 만들기 (0) | 2024.03.25 |
---|---|
[백준] 14658 하늘에서 별똥별이 빗발친다 (0) | 2024.03.14 |
[백준] 1253 좋다 (0) | 2024.03.09 |
[백준] 2234 성곽 (0) | 2024.03.09 |
[백준] 1940 주몽 (1) | 2024.03.06 |