최소직사각형 찾기

2022. 2. 8. 15:15·알고리즘 (with JAVA)/코딩 테스트 기출 문제

1. 문제 설명

 

 

 

 

2. 입출력 조건 및 예제

입력 조건

X

 

출력 조건

X

 

 

입력 예제

4

60 50

30 70

60 30

80 40

 

출력 예제

4000

 

 

 

 

3. 제약 조건

X

 

 

 

 

4. 가정법

X

 

 

 

 

5. 기저 사례

X

 

 

 

 

6. 코드

public class Main {
	private static BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
	private static StringTokenizer st;
	
	public static void main(String[] args) throws Exception {
		int c = Integer.parseInt(sc.readLine());
		int[][] A = new int[c][2];
		
		for(int i=0; i<c; i++){
			st = new StringTokenizer(sc.readLine());
			for(int j=0; j<2; j++) {
				A[i][j] = Integer.parseInt(st.nextToken());
			}
		}
		System.out.println(makeWallet(A));
	}
	
	private static int makeWallet(int[][] A) {
		int ret[] = new int[2];
		int max=0, min=0;
		
		for(int i=0; i<A.length; i++) {
			int a = Math.max(A[i][0], A[i][1]);
			int b = Math.min(A[i][0], A[i][1]);
			max = Math.max(max, a);
			min = Math.max(min, b);
		}
		return max*min;
	}
}

 

 

(1) 이 문제는 요약하면 모든 명함을 넣을 수 있는 가장 짧은 가로,세로 길이를 구하는 것이다.

 

(2) 단, 명함을 눕힐 수 있기 때문에 가로와 세로 길이를 바꿀 수 있다.

 

(3) 그러므로 행들끼리 비교하여  max와 min 값을 구한다.

( 주의있게 봐야 할 점은 min을 최소값으로 구하면 안 된다는 것이다. )

( 예를 들어, {70,30}과 {50, 50}이 있다면, 두 행에서의 min은 30이다. )

( 그러나 30을 한다면, 두 번째 행의 길이 50이 못 들어가게 된다. )

( 그러므로 min 중에서도 최대값을 구해야 한다. )

 

 

(4) 아래의 풀이 과정을 보고 이해하자.

 

 

'알고리즘 (with JAVA) > 코딩 테스트 기출 문제' 카테고리의 다른 글

순환 소수 찾기  (0) 2022.08.28
소수 만들기  (0) 2022.02.09
'알고리즘 (with JAVA)/코딩 테스트 기출 문제' 카테고리의 다른 글
  • 순환 소수 찾기
  • 소수 만들기
백_곰
백_곰
  • 백_곰
    친절한 코딩
    백_곰
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 알고리즘 (with JAVA)
        • 기본 알고리즘
        • 완전 탐색
        • 분할 정복 알고리즘
        • 동적 계획법
        • 탐욕법
        • 코딩 테스트 기출 문제
        • 코드트리 조별과제
      • 백준 (with JAVA)
        • 완전 탐색
        • 분할 정복
        • 그 외
      • 자바
        • 개발 환경 구축하기
        • 팁
        • 기본적인 개념
        • 컬렉션 프레임워크
        • 프로세스와 쓰레드
        • 지네릭스
        • 람다식
        • 스트림
        • 입출력 IO
        • 네트워킹
        • 열거형(enums)
        • java.lang 패키지
        • java.time 패키지
        • 유용한 클래스들
        • 형식화 클래스들
      • 안드로이드 with 자바
        • 응용 문제들
        • 자잘한 문제들
        • 오류 보고서
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      알고스팟
      람다식
      유용한 클래스
      Arrays
      역직렬화
      InputStream
      outputstream
      코드트리
      중간연산
      java.time 패키지
      코딩트리조별과제
      다형성
      자바 개념
      제자리 정렬
      map()
      snail
      선택 정렬
      스트림
      java.lang패키지
      file
      불안정 정렬
      serializable
      Collections Framework
      TCP 소켓 프로그래밍
      소켓 프로그래밍
      안드로이드 스튜디오
      문자 기반 스트림
      안정 정렬
      코딩테스트
      ServerSocket
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    백_곰
    최소직사각형 찾기
    상단으로

    티스토리툴바