[백준] 19941: 햄버거 분배 - JAVA

https://www.acmicpc.net/problem/19941

풀이

사람과 햄버거가 한칸씩 차지하고 나열되어있다.

사람들은 자신의 위치에서 거리가 K이하인 햄버거를 하나 먹는다.

사람을 앞에서부터 보면서 거리가 K이하인 것중에 위치가 가장 앞인거을 먹게한다.

앞사람에게 앞햄버거를 배정하는 것이 최선의 경우이다.


메모리: 14388KB

시간: 136ms

언어: Java 11

코드

import java.util.*;
import java.io.*;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        int K = Integer.parseInt(st.nextToken());

        char[] arr = br.readLine().toCharArray();
        boolean[] visit = new boolean[N];

        int ans = 0;
        for (int i = 0; i < N; i++) {
            if (arr[i] == 'P') {
                for (int j = Math.max(0, i - K); j < Math.min(i + K + 1, N); j++) {
                    if (arr[j] == 'H' && !visit[j]) {
                        visit[j] = true;
                        ans++;
                        break;
                    }
                }
            }
        }

        System.out.println(ans);
    }

}