[백준] 19941 햄버거 분배

문제링크 : https://www.acmicpc.net/problem/19941

 

19941번: 햄버거 분배

기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사

www.acmicpc.net

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