- 코테 시리즈에 올리려다가 프로그래머스 알고리즘 고득점 kit만 따로 정리하는 게 나을 거 같아서 정리
- 근데 이렇게 한땀한땀 문제 정리하면 문제 정리하는 시간이 더 들 거 같은데 어카지
링크: https://school.programmers.co.kr/learn/courses/30/lessons/86491
문제
아이디어
지갑 크기 = max(짧은 변) * max(긴 변)lst_w = []
lst_h = []
for _ in sizes:
lst_w.append(sizes[0])
lst_h.append(sizes[1])
# 내 의도: sizes를 돌면서 안의 [w, h] 쌍 중 w가 lst_w에,
# h가 lst_h에 들어가길 바람
# 실제 코드: sizes의 길이 만큼 sizes[0]과 sizes[1]를 넣겠다는 의미
추측한 문제점 3가지
sizes[0] 은 첫 번째 명함이며, 루프에서 계속 그 값만 참조 ⇒ 명함 전체 순회 실패map(Int, lst) 없이 max(lst) 했을 경우 문자열의 max값을 구할 것sort, map 문법 까먹음 for size in sizes: 각각 [w, h] 쌍을 꺼내겠다for w, h in sizes: 언팩 가능 ≤ 근데 나는 얘가 더 직관적이라 문제 풀 때 편한 거 같음…sizes,sort() ⇒ 전체 명함의 순서 정렬map(sorted, sizes) or w h = sorted([w, h]) ⇒ 명함 개별 정렬#근데 난 통으로 복붙했는데 why 쪼개져서 올라감?
def solution(sizes):
lst_w = []
lst_h = []
for w, h in sizes:
w, h = sorted([w, h]) # 짧은 쪽을 w, 긴 쪽을 h로 맞춤
lst_w.append(w)
lst_h.append(h)
return max(lst_w) * max(lst_h)
[작은 쪽, 큰 쪽]으로 정렬