우당탕탕 개발일지

[SWEA] 14178. 1차원 정원(Java, D3) 본문

코테/SW Expert Academy

[SWEA] 14178. 1차원 정원(Java, D3)

ujin302 2024. 5. 13. 17:41
반응형

문제

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

 

입출력 예

 

풀이

문제에 의하면 분무기 1개의 범위는 [x - D, x + D] 이다. 

해당 범위에 존재하는 꽃의 개수는 D * 2 + 1 개가 된다.

 

따라서 { 전체 꽃의 개수 / 1개의 분무기가 뿌릴 수 있는 꽃의 개수 } 를 통해서 최소한의 분무기의 개수를 구할 수 있다. 

 

이때 결과 값의 나머지가 있는 경우 분무기가 1개더 필요한다. 

해당 경우에만 + 1를 하게 된다. 

 

코드

Scanner sc = new Scanner(System.in);
int t=sc.nextInt();
		                                                                                                                   
for(int tc =1; tc<1+t; tc++) { 
	int result =0;
	int flower= sc.nextInt();
	int d = sc.nextInt();
			
	int range = d*2+1; // 분무기 1개로 물을 뿌릴수 있는 꽃의 개수 
	result = flower / range;
	if(flower % range != 0) {
		result ++;
	}
			
	System.out.println("#"+tc+ " " + result);
}

 

SWEA 문제

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AX_N3oSqcyUDFARi

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

반응형