Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- dacon
- 프로그래머스
- Baekjoon
- Docker
- hackerrank
- 맥북
- 백준
- PYTHON
- 금융문자분석경진대회
- 파이썬
- 프로그래머스 파이썬
- 우분투
- 자연어처리
- AI 경진대회
- 코로나19
- programmers
- 편스토랑 우승상품
- leetcode
- SW Expert Academy
- 데이콘
- github
- Real or Not? NLP with Disaster Tweets
- gs25
- Kaggle
- 더현대서울 맛집
- ChatGPT
- ubuntu
- 편스토랑
- 캐치카페
- Git
Archives
- Today
- Total
솜씨좋은장씨
[Programmers] 위클리 챌린지 8주차 - 최소직사각형 (Python) 본문
728x90
반응형
코딩 1일 1문제! 오늘의 문제는 프로그래머스 위클리 챌린지 8주차! 최소직사각형 입니다.
👨🏻💻 코드 풀이
여러 명함의 크기를 알려주면 이 모든 명함들을 담을 수 있는 가장 작은 크기의 명함케이스의 크기를 구하는 문제입니다.
의외로 엄청 쉽게 풀 수 있는 문제입니다.
명함의 가로 세로 길이 중에서 가장 긴 길이로 먼저 명함케이스의 길이를 지정하면 쉽게 풀 수 있는 문제입니다.
먼저 각 명함의 길이들을 앞쪽에 더 긴 길이가 오도록 정렬합니다.
[[60, 50], [30, 70], [60, 30], [80, 40]]
-> [[60, 50], [70, 30], [60, 30], [80, 40]]
sizes = [sorted(size, reverse=True) for size in sizes]
여기서 각 값들의
첫번째 값들을 명함케이스의 가로 길이 후보
두번째 값들을 명함케이스의 세로 길이 후보로 만들어줍니다.
[[60, 50], [70, 30], [60, 30], [80, 40]]
- 가로 길이 후보 : [60, 70, 60, 80]
- 세로 길이 후보 : [50, 30, 30, 40]
widths = [size[0] for size in sizes]
heights = [size[1] for size in sizes]
각 후보에서 가장 큰 값을 명함케이스의 가로길이, 세로길이로 지정합니다.
- 가로 길이 후보 : [60, 70, 60, 80]
=> 가로 길이 = 80
- 세로 길이 후보 : [50, 30, 30, 40]
=> 세로 길이 = 50
width, height = max(widths), max(heights)
정답은 이렇게 구한 명함케이스의 크기를 구하는 것이므로
answer = width * height
가로와 세로의 길이를 곱한 값입니다.
전체 코드는 아래를 참고해주세요.
👨🏻💻 코드 ( Solution )
def solution(sizes):
answer = 0
sizes = [sorted(size, reverse=True) for size in sizes]
widths = [size[0] for size in sizes]
heights = [size[1] for size in sizes]
width, height = max(widths), max(heights)
answer = width * height
return answer
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[BaekJoon] 1977번 : 완전제곱수 (Python) (0) | 2021.10.03 |
---|---|
[BaekJoon] 9093번 : 단어 뒤집기 (Python) (0) | 2021.10.02 |
[BaekJoon] 4375번 : 1 (Python) (0) | 2021.09.30 |
[BaekJoon] 1182번 : 부분수열의 합 (Python) (0) | 2021.09.29 |
[BaekJoon] 1747번 : 소수&팰린드롬 (Python) (0) | 2021.09.28 |
Comments