From 0f16a15fac4a10aaa9c6aa5d113eaadc70bdfba9 Mon Sep 17 00:00:00 2001 From: j2woo Date: Mon, 11 Sep 2023 23:26:46 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B0=95=EC=A7=80=EC=9A=B0:=20=ED=96=84?= =?UTF-8?q?=EB=B2=84=EA=B1=B0=20=EB=B6=84=EB=B0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\352\261\260\353\266\204\353\260\260.java" | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 "j2woo/Sep/\355\226\204\353\262\204\352\261\260\353\266\204\353\260\260.java" diff --git "a/j2woo/Sep/\355\226\204\353\262\204\352\261\260\353\266\204\353\260\260.java" "b/j2woo/Sep/\355\226\204\353\262\204\352\261\260\353\266\204\353\260\260.java" new file mode 100644 index 0000000..14e29fd --- /dev/null +++ "b/j2woo/Sep/\355\226\204\353\262\204\352\261\260\353\266\204\353\260\260.java" @@ -0,0 +1,48 @@ +package j2woo.Sep; + +import java.util.*; +import java.io.*; +public class 햄버거분배 { + public static void main (String[] args) throws IOException { + 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()); + + // 햄버거가 먹혔거나 사람이 먹었는지 확인하는 배열 + boolean [] checked = new boolean[N]; + + // 햄버거와 사람 ex) HHPHPPHHPPHPPPHPHPHP + String str = br.readLine(); + + // 정답, 햄버거를 먹을 수 있는 최대 사람 수 + int answer = 0; + + // str을 확인하면서 햄버거와 사람이 K거리 안에 있는지 확인 + for (int i = 0; i < N; i++) { + // 현재 인덱스의 햄버거 or 사람 + char c = str.charAt(i); + + // 먹혔거나 먹은 것이라면 다음 인덱스로 넘어감 + if (checked[i]) continue; + + // K거리를 확인할 때 끝보다 뒤일 경우를 주의하기 위하여 + int max = Math.min(i + K + 1, N); + + // K거리까지 확인한다. + // 해당 인덱스가 먹히거나 먹지 않은 무엇이고 자기 자신과 다른 것이라면 + // 햄버거를 먹을 수 있거나 먹힐 수 있기 때문에 정답을 늘리고 i와 j에 해당하는 boolean 배열에 확인처리를 해준다. + for (int j = i + 1; j < max; j++) { + if (checked[j] == false && str.charAt(j) != c) { + answer++; + checked[i] = true; + checked[j] = true; + break; + } + } + } + + System.out.println(answer); + } +}