이직하고만다(분노)
99클럽 코테 스터디 7일차 TIL : 최소 직사각형(완전탐색)
xxo_ohii
2024. 5. 29. 10:52
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/86491?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
오늘의 문제는 명함의 크기에 맞는 최소 크기의 지갑의 너비를 구하는 것
def solution(sizes):
max_width = 0
max_height = 0
for size in sizes:
width, height = size
if width < height:
width, height = height, width
max_width = max(max_width, width)
max_height = max(max_height, height)
return max_width * max_height
어휘력이 안좋나 왤케 문제를 이해하는게 어려울까...?
결론적으로 가로는 최대값을 구하고
세로는 최소값을 구하면 되는 문젠데
def solution(sizes):
max_width = 0
max_height = 0
먼저 함수선언하고(solution)
가로와 세로의 값을 담을 변수 두 개(max_width, max_height)를 초기화 해준다.
for size in sizes:
width, height = size
if width < height:
width, height = height, width
max_width = max(max_width, width)
max_height = max(max_height, height)
for 문을 돌려서
만약, sizes = [[60, 50], [30, 70], [60, 30], [80, 40]] 라면
size는 [60, 50] 과 같은 요소가 될 것이고
sizes를 순회할 것이다.
그리고 튜플 언패킹을 사용해서 size의 요소를
width와 height에 담아준다.
개념 | 설명 | 예시 |
튜플 언패킹 | 리스트나 튜플과 같은 시퀀스 자료형의 요소들을 개별 변수에 할당하는 간단하고 직관적인 방법 | coordinates = (10, 20) x, y = coordinates x는 10이고, y는 20이 됨 dimensions = [100, 200] width, height = dimensions width는 100, height는 200이 됨 |
그리고 if문으로 width(가로)가 세로(height)보다 크게 설정한다.
-> 일관된 기준을 위함
max_width = max(max_width, width)
max_height = max(max_height, height)
width와 height를 max함수를 통해
어떤게 제일 큰지 비교하며
결과적으로
max_width * max_height
리턴하면 끝
728x90