자바로 백준 1246 풀기

hong030·2023년 3월 31일
0
  • 실버 4단계 문제

풀이)
제한시간이 넉넉해 그리드 방식으로 풀었다.
입력을 정렬한 후 거기에서 최댓값을 찾으면 된다.

내 코드)

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

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st =  new StringTokenizer(br.readLine());
		int N = Integer.parseInt(st.nextToken());
		int M =Integer.parseInt(st.nextToken());
		
		ArrayList<Integer> arr = new ArrayList<>();
		
		for (int i = 0; i < M; i++) {
			arr.add(Integer.parseInt(br.readLine()));
		}
		
		Collections.sort(arr);
		
		int ans = 0;
		int max = 0;
		
		for (int i = 0; i < M; i++) {
			int tmp = arr.get(i);
			int tmpsum = 0;
			
			if(M-i<N) {
				tmpsum = tmp * (M-i);
			}else {
				tmpsum = tmp * N;
			}
			
			if(tmpsum>max) {
				max = tmpsum;
				ans = tmp;
			}
		}
		System.out.println(ans + " "+ max);
	}
}

profile
자바 주력, 프론트 공부 중인 초보 개발자. / https://github.com/hongjaewonP

0개의 댓글