Notice
														
												
											
												
												
													Recent Posts
													
											
												
												
													Recent Comments
													
											
												
												
													Link
													
											
									| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
													Tags
													
											
												
												- Inventory Optimization
- tensorflow
- 신경쓰기의 기술
- forecast
- ABC Analysis
- kaggle
- 웨어하우스 보관 최적화
- leetcode
- pandas profiling
- SKU Consolidation
- 코딩테스트
- 파이썬
- MySQL
- 딥러닝
- 코딩테스트연습
- Gaimification
- 피그마인디언
- SQL
- ProfileReport
- ModelCheckPoint
- Labor Management System
- Product Demand
- HackerRank
- eda
- 당신의 인생이 왜 힘들지 않아야 한다고 생각하십니까
- TensorFlowGPU
- MS SQL Server
- 데이터분석
- oracle
- 프로그래머스
													Archives
													
											
												
												- Today
- Total
오늘도 배운다
최소직사각형 / 프로그래머스, 파이썬 코딩테스트 연습 완전탐색 본문
문제
명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다.
가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 지갑 크기는 4000(=80 x 50)입니다.
모든 명함의 가로 길이와 세로 길이를 나타내는 2차원 배열 sizes가 매개변수로 주어집니다. 모든 명함을 수납할 수 있는 가장 작은 지갑을 만들 때, 지갑의 크기를 return 하도록 solution 함수를 완성해주세요.
아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다.


제출답안
def solution(sizes):
	# 각 사이즈를 max, min 순으로 정렬
    sizes = [[max(size), min(size)] for size in sizes]
    
    # Length, Width의 최대값 구하기
    max_len = max(sizes, key= lambda x: x[0])[0]
    max_wth = max(sizes, key= lambda x: x[1])[1]
    
    answer = max_len * max_wth
    return answer
제출 후 개선답안
각 사이즈([a, b])에서 큰 값의 가장 큰 값 = 직사각형 중 가장 긴 길이
각 사이즈([a, b])에서 작은 값의 가장 큰 값 = 직사각형 중 가장 긴 너비
def solution(sizes):
    # 큰 값 중 가장 큰 것
    max_max = max(max(size) for size in sizes)
    
    # 큰 값 중 가장 작은 것
    max_min = max(min(size) for size in sizes)
    answer =  max_max * max_min
    return answer


문제 바로가기
728x90
    
    
  '코딩테스트연습(파이썬)' 카테고리의 다른 글
| 나머지가 1이 되는 수 찾기 / 프로그래머스, 파이썬 (0) | 2022.12.15 | 
|---|---|
| 성격 유형 검사하기 / 프로그래머스, 파이썬 코딩테스트 연습 2022 KAKAO TECH INTERNSHIP (0) | 2022.12.14 | 
| 옹알이 (2) / 프로그래머스, 파이썬 코딩테스트 연습 연습문제 (0) | 2022.12.12 | 
| 이상한 문자 만들기 / 프로그래머스, 파이썬 코딩테스트 연습 연습문제 (0) | 2022.12.11 | 
| 소수 찾기 / 프로그래머스, 파이썬 코딩테스트 연습 연습문제 (0) | 2022.12.07 | 
			  Comments
			
		
	
               
           
					
					
					
					
					
					
				 
								 
								 
								