[알고리즘/백준] #3985 롤케이크

JudyLia·2022년 2월 7일
0

알고리즘

목록 보기
22/61
post-thumbnail

문제) 롤케이크

package algorithm_study.day0207;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

public class Main {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		int size=Integer.parseInt(br.readLine());
		int M=Integer.parseInt(br.readLine());
		
		int[] rollcake=new int[size+1];
		int[] start=new int[M+1];
		int[] end=new int[M+1];
		
		for(int i=1;i<=M;i++) {
			String[] s=br.readLine().split(" ");
			start[i]=Integer.parseInt(s[0]);
			end[i]=Integer.parseInt(s[1]);
		}
		
		Map<Integer, Integer> map=new HashMap<Integer, Integer>();
		
		int b_Max=0;
		int max_person=0;
		
		for(int i=1;i<=M;i++) {
			int p=0;
			map.put(i, p);
			
			int i_Max=end[i]-start[i]+1;
			if(b_Max<i_Max) {
				b_Max=i_Max;
				max_person=i;
			}
			
			for(int j=start[i];j<=end[i];j++) {
				if(rollcake[j]==0) {
					rollcake[j]=i;
					p+=1;
					map.put(i, p);
//					System.out.println(Arrays.toString(rollcake));
				}
			}
		}
		List<Map.Entry<Integer, Integer>> entryList = new LinkedList<>(map.entrySet());
		entryList.sort(Map.Entry.comparingByKey((a, b) -> b- a));
		entryList.sort(Map.Entry.comparingByValue());
		
		
//		System.out.println(entryList);
		
		sb.append(max_person).append("\n");
		sb.append(entryList.get(M-1).getKey()).append("\n");
		System.out.print(sb.toString());
		
	}
}
profile
안녕:)

0개의 댓글

관련 채용 정보