시뻘건 개발 도전기

[2217번] 로프 본문

Business logic/백준

[2217번] 로프

시뻘건볼때기 2020. 4. 15. 11:00
반응형

문제 기출 : [https://www.acmicpc.net/problem/2217]

 

 

풀이 방법

[그리디알고리즘] 접근

 

1. N개의 버틸 수 있는 중량을 배열에 저장하여 sort.

2. 버틸 수 있는 최대 중량을 구해야하므로 큰 값 먼저 탐색하여 다음 식을 적용

i번째 로프의 버틸 수 있는 중량 x (로프의 수 - i)

3. 최대값이 정답이 된다.

 

문제 풀이

public class Main {

	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int answer = 0;

		try {
			int N = Integer.parseInt(br.readLine());
			int[] weight = new int[N];

			for (int i = 0; i < N; i++) {
				weight[i] = Integer.parseInt(br.readLine());
			}

			Arrays.sort(weight);

			for (int i = N - 1; i >= 0; i--) {
				weight[i] = weight[i] * (N - i);
				answer = Math.max(answer, weight[i]);
			}

			System.out.println(answer);

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}
반응형

'Business logic > 백준' 카테고리의 다른 글

[2529번] 부등호  (0) 2020.04.16
[2352번] 반도체 설계  (0) 2020.04.15
[1946번] 신입 사원  (0) 2020.04.14
[1969번] DNA  (0) 2020.04.13
[1931번] 회의실배정  (0) 2020.04.13
Comments