[백준] BOJ 2628 종이자르기

SONGB·2023년 8월 3일
0

알고

목록 보기
9/12

문제

BOJ 2628 종이자르기

https://www.acmicpc.net/problem/2628


사실 어제 풀었따.
까먹고 안 올렸다.
쉬운 문제를 풀며 자신감 뿜뿜
어려운 문제들도 이렇게 쉽게 금방 풀리면 좋겠다
인생도 쉽게 풀리면 좋겠다
요즘 개 덥다. 섹시샤워 하고 싶다


코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;


public class Main {
	static int C,R,N;
	
	public static void main(String[] args) throws Exception {

		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st=new StringTokenizer(br.readLine());
		
		C=Integer.parseInt(st.nextToken());
		R=Integer.parseInt(st.nextToken());
		
		N=Integer.parseInt(br.readLine());
		
		List<Integer>listR=new ArrayList<>();
		List<Integer>listC=new ArrayList<>();
		
		listR.add(0);
		listR.add(R);
		listC.add(0);
		listC.add(C);
		
		for(int i=0;i<N;i++) {
			st=new StringTokenizer(br.readLine());
			int d=Integer.parseInt(st.nextToken());
			int x=Integer.parseInt(st.nextToken());
			
			switch(d) {
			case 1: 
				listC.add(x);
				break;
			case 0: 
				listR.add(x);
				break;
			}
			
		}
		
		Collections.sort(listC);
		Collections.sort(listR);
		
		int cSize=listC.size()-1;
		int rSize=listR.size()-1;
		
		int []cArr = new int[cSize];
		int []rArr = new int[rSize];
		
		for(int i=1;i<=rSize;i++) {
			rArr[i-1]=listR.get(i)-listR.get(i-1);
		}
		
		for(int i=1;i<=cSize;i++) {
			cArr[i-1]=listC.get(i)-listC.get(i-1);
		}
		
		
		int max=0;
		for(int i=0;i<rSize;i++) {
			for(int j=0;j<cSize;j++) {
				max=Math.max(max, rArr[i]*cArr[j]);
			}
		}
		
		System.out.println(max);
	}

}

풀이방법

정렬

ROW , COLUMN 따로 리스트를 만들어서 잘린 크기를 계산해 ARRAY에 저장했다.
ROW ARRAY의 값과 COLUMN ARRAY의 값을 곱하며 최댓값을 구한다.

profile
⚽⚾데굴데굴 굴러가는 내 맘대로 벨로그🏀🏐

0개의 댓글