최소직사각형 찾기

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 자바
        • 응용 문제들
        • 자잘한 문제들
        • 오류 보고서
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

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

    • 최근 글

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

    티스토리툴바