우당탕탕 개발일지

[SWEA] 1208. [S/W 문제해결 기본] 1일차 - Flatten(Java, D3) 본문

코테/SW Expert Academy

[SWEA] 1208. [S/W 문제해결 기본] 1일차 - Flatten(Java, D3)

ujin302 2024. 5. 17. 16:19
반응형

문제

한 쪽 벽면에 다음과 같이 노란색 상자들이 쌓여 있다.
높은 곳의 상자를 낮은 곳에 옮기는 방식으로 최고점과 최저점의 간격을 줄이는 작업평탄화라고 한다.
평탄화를 모두 수행하고 나면, 가장 높은 곳과 가장 낮은 곳의 차이가 최대 1 이내가 된다.
평탄화 작업을 위해서 상자를 옮기는 작업 횟수에 제한이 걸려있을 때, 제한된 횟수만큼 옮기는 작업을 한 후 최고점과 최저점의 차이를 구해라

 

입출력 예

 

풀이

 

Arrays.sort를 통해서 오름차순 정렬을 한다. 

그 후, 가장 작은 값이 0번째에는 +1, 가장 큰 값인 99 번째에는 -1를 한다. 

 

해당 과정이 끝난 후 99번째와 0번째의 차이를 출력한다.

 

코드

		Scanner sc = new Scanner(System.in);
		int t=sc.nextInt();
		
		for(int tc =1; tc<1+t; tc++) {
			int result = 0;
			int count = sc.nextInt();
			int[] boxHigh = new int[100];
			for(int i=0; i<100; i++) {
				boxHigh[i] = sc.nextInt();
			}
			
			for(int i=0; i<count; i++) {
				Arrays.sort(boxHigh);
				boxHigh[0] ++;
				boxHigh[99] --;
			}
			Arrays.sort(boxHigh);
			result = boxHigh[99] - boxHigh[0];
			
			System.out.println("#"+tc+ " " + result);
		}

 

 

SWEA 문제

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

 

SW Expert Academy

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

swexpertacademy.com

 

반응형