코딩테스트/백준

백준 19941 햄버거 분배

Debin 2021. 10. 8.
반응형

 

해결 언어는 자바이다. 아래는 예시이다.

 

 

언어는 자바이다.

 

해결법

1. 먼저 총 문자열 개수와 먹을 수 있는 범위를 입력받는다.

2. 이후 햄버거와 사람에 대한 문자열을 모두 요소를 분리해 배열로 만든다.

3. 이제 사람을 나타내는 P가 배열 요소일 때, 그 자리가 i라면 i-range부터 i+range 까지 배열 요소에 햄버거가 있는지 살핀다. 햄버거를 나타내는 문자열은 "H"이다.

4. 물론 범위는 0보다는 같거나 크고 배열 길이보다는 작아야 한다.

5. 만약 햄버거가 있다면 먹었다는 표시로 "E"로 배열의 요소를 바꾸고 횟수를 세는 변수인 cnt를 증가시킨다. 

햄버거 1개를 찾으면 멈추게 break문을 사용한다.

6. 모든 반복문이 끝나면 cnt를 출력한다.

 

해결 코드다.

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main{
	public static void main(String[] args)throws IOException {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		String[] str=br.readLine().split(" ");
		int num=Integer.parseInt(str[0]);
		int range=Integer.parseInt(str[1]);
		int cnt=0;
		String[] arr=br.readLine().split("");
		
		for(int i=0;i<arr.length;i++) {
			if(arr[i].equals("P")) {
				for(int j=i-range;j<=i+range;j++) {
					if(j>=0 & j<num) {
						if(arr[j].equals("H")) {
							cnt++;
							arr[j]="E";
							break;
						}
					}
				}
			}
		}
		System.out.print(cnt);
	}
}
반응형

댓글