코딩테스트
[프로그래머스][위클리챌린지] 8주차 - ?
pythaac
2021. 9. 27. 18:04
프로그래머스 코딩테스트 위클리 챌린지의 문제입니다.
https://programmers.co.kr/learn/challenges?tab=weekly_challenges
코딩테스트 연습
기초부터 차근차근, 직접 코드를 작성해 보세요.
programmers.co.kr
문제
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
내가 작성한 코드
def solution(sizes):
mx, mn = [], []
for a, b in sizes:
mx.append(max(a, b))
mn.append(min(a, b))
return max(mx) * max(mn)
- 문제접근방식
- 명함들의 가로길이와 세로길이 중 더 큰 길이끼리, 더 작은 길이끼리 비교
- 명함1이 가로 80, 세로 70, 명함2가 가로 50, 세로 90이면 mx = [80, 90], mn = [70, 50] - 더 큰 길이 중 최대값, 더 작은 길이 중 최대값의 곱을 반환
- 명함들의 가로길이와 세로길이 중 더 큰 길이끼리, 더 작은 길이끼리 비교
다른 사람이 작성한 코드
def solution(sizes):
return max(max(x) for x in sizes) * max(min(x) for x in sizes)
- 코드가 깔끔하다
- 아쉬운 점은 sizes를 2번 탐색
기억해야할 것
- 처음에 파라메트릭 서치가 떠올랐다가, 더 간단할 것 같아서 고민을 더 했다