[Python] 프로그래머스 - Weekly Challenge 8주차
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/86491
코딩테스트 연습 - 8주차
[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133
programmers.co.kr
1. 두개의 명함을 비교할때 나올 수 있는 케이스는 2가지 밖에 없다.
A B A B
C D 와 D C 두가지밖에 없다. 첫번째에서 A B를 뒤집으면 두번째 케이스와 같아지기 때문이다.
2. 결국 이 두가지 케이스를 a, b에 넣어주고 a의 명함넓이가 b 명함넓이보다 작으면
answer = a, 반대면 answer = b를 해주면서 answer값을 계속 갱신해준다.
3. 마지막에 answer[0] * answer[1]로 넓이를 return해준다.
def solution(sizes): answer = [sizes[0][0], sizes[0][1]] for s in sizes[1:]: a = [max(s[0], answer[0]), max(s[1], answer[1])] b = [max(s[0], answer[1]), max(s[1], answer[0])] if a[0] * a[1] < b[0] * b[1]: answer = a else: answer = b return answer[0] * answer[1]
728x90
반응형
TAGS.