Developing Myself Everyday
 

SW Expert Academy

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

swexpertacademy.com

 

문제와 관련된 내용은 위의 링크에서 확인할 수 있습니다.


 

 

 

1. 나의 풀이

이 문제를 해결하기 위해서는 각 덤프에서 가장 높은 박스와 가장 늦은 박스를 찾아야 합니다.

 

문제에 접근할 때에는 시간을 생각하지 않고 브루트포스하게 찾는 방식으로 진행했습니다.

<java />
import java.io.*; import java.util.*; class Solution { public static void main(String args[]) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); for(int test_case = 1; test_case <= 10; test_case++) { int dump = Integer.parseInt(br.readLine()); int[] boxes = new int[100]; StringTokenizer st = new StringTokenizer(br.readLine()); for(int i = 0; i < 100; i++) { boxes[i] = Integer.parseInt(st.nextToken()); } for(int k = 0; k < dump; k++) { int minIndex = 0; int minValue = 100; int maxIndex = 0; int maxValue = 1; for(int i = 0; i < 100; i++) { if (boxes[i] < minValue) { minValue = boxes[i]; minIndex = i; } if (boxes[i] > maxValue) { maxValue = boxes[i]; maxIndex = i; } } if (maxValue - minValue <= 1) break; boxes[minIndex] = boxes[minIndex] + 1; boxes[maxIndex] = boxes[maxIndex] - 1; } int heightDifference = Arrays.stream(boxes).max().getAsInt() - Arrays.stream(boxes).min().getAsInt(); System.out.println("#" + test_case + " " + heightDifference); } } }

 

 

그렇기에 시간을 줄일 수 있는 방법을 찾아야 합니다. 가장 핵심인 가장 높은 박스와 낮은 박스를 찾는 방법은, 

profile

Developing Myself Everyday

@배준형

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