SWEA(SWExpertacAdemy)

[SWEA] 14178. 1차원 정원 D3 (자바)

심층코드 2025. 5. 16. 21:21

14178. 1차원 정원 D3

[문제]

1차원 수직선 위에 정원이 있다. 모든 정수 1 ≤ i ≤ N 에 대해, 좌표 i에 꽃이 하나씩 심겨 있다. , 좌표 1, 2, …, N에 총 N개의 꽃이 심겨 있다.
꽃에 물을 주기 위해 자동 분무기를 사용한다. 분무기는 정수 좌표에 놓을  있으며, 좌표 x에 분무기를 놓았을 경우 닫힌 구간 [x - D, x + D] 심긴 모든 꽃들에 물을   있다.
N과 D가 주어질 , 모든 꽃이   이상의 분무기에서 물을 받을  있도록 하기 위해 필요한 최소한의 분무기 수를 구하는 프로그램을 작성하라.


[입력]
 번째 줄에 테스트 케이스의 수 T가 주어진다.
 테스트 케이스는 하나의 줄로 이루어진다.  줄에는  개의 정수 N과 D (1 ≤ N, D ≤ 100) 가 공백 하나를 사이로 두고 주어진다.


[출력]
 테스트 케이스마다 모든 꽃이   이상의 분무기에서 물을 받을  있도록 하기 위해 필요한 최소한의 분무기 수를 출력한다.

입력
3
5 1
5 2
100 3
 
 
출력
#1 2
#2 1
#3 15

[코드]

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

public class Solution {

	public static void main(String[] args) throws IOException {
		BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
		int T=Integer.parseInt(br.readLine());
		for (int i = 1; i <= T; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			int N=Integer.parseInt(st.nextToken());
			int D=Integer.parseInt(st.nextToken());
			int D_=D*2+1;
			int result=N/D_;
			if(N%D_!=0) {
				result++;
			}
			System.out.println("#"+i+" "+result);
		}
		br.close();
	}

}