헝D의 일기장
article thumbnail

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

 

19941번: 햄버거 분배

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

www.acmicpc.net

 

나의풀이

import java.io.*;
import java.util.*;
public class Main {
    public static void main(String args[]) throws Exception{
        int answer=0;
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st=new StringTokenizer(br.readLine());
        int n=Integer.parseInt(st.nextToken());
        int k=Integer.parseInt(st.nextToken());
        
        char[] arr=br.readLine().toCharArray();
        int[] arr2=new int[n];
        Arrays.fill(arr2,0);
        
        for(int i=0; i<n;i++){
            if(arr[i]=='H'){
                arr2[i]=1; // 햄버거가 있는 위치를 1로 초기화 
            }
        }
               
        for(int i=0;i<n;i++){
            if(arr[i]=='P'){//사람일때
                int temp= (i-k) < 0 ? 0 : (i-k) ;
                int temp2= (i+k) > n-1 ? n-1 : (i+k) ;
                for(int j=temp;j<=temp2;j++){//사람 위치에서 앞뒤 k 까지 안먹은 햄버거 있는지 살피기
                    if(arr2[j]==1){//안먹은 햄버거가 있으면 
                        arr2[j]=0; //먹었다고 바꾸기
                        answer++;//햄버거를 먹은 사람으로 추가 
                        break;
                    }
                }
            }
        }
        bw.write(Integer.toString(answer));
        bw.close();
    }
}

 

profile

헝D의 일기장

@헝D

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!