[파이썬] 리스트안에 2차원배열의 위치바꾸기!( feat. 최소 직사각형 문제)
안녕하세요 이번에 소개할 파이썬 기능은 2차원배열의 리스트가 주어져있을때, 조건에 맞도록 위치를 바꿔주는 코딩을 구현해보고자 합니다.
먼저 처음의 리스트에 대한 설명입니다.
1. sizes라는 리스트에는 가로 길이, 세로길이가 2차원배열로 쌍으로 들어가있습니다.

네 이렇게 오늘은 2차원 리스트 안의 리스트값의 순서를 변경해보았습니다! 감사합니다.
아래 내용은 프로그래머스스쿨의 문제인 최소 직사각형 문제를 푼 제 식입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
def solution(sizes):
answer = 0
max_val_ga = 0
max_val_se = 0
for i in range(0, len(sizes)):
if sizes[i][0] <= sizes[i][1]:
sizes[i][0], sizes[i][1] = sizes[i][1], sizes[i][0]
if max_val_ga <= sizes[i][0]:
max_val_ga = sizes[i][0]
if max_val_se <= sizes[i][1]:
max_val_se = sizes[i][1]
answer = max_val_se*max_val_ga
return answer
|
cs |
식을 설명하자면, sizes 에서 리스트를 받아왔을때, 이 값의 2중리스트 값들의 각각을 순서대로 정렬합니다.
sizes = [[10, 7], [12, 3], [15, 8], [14, 7], [15, 5]]
그 뒤에 왼쪽에 있는 값( 10, 12, 15, 14, 15)들과 오른쪽에 있는 값(7, 3, 8, 7, 5)의 값들 중에 큰 값을 찾고 싶습니다.
max_val_ga, max_val_se 가 각각 최대 가로 길이, 최대 세로길이 인데, 여기값을 가장 큰 왼쪽값, 가장 큰 오른쪽 값을 저장한 뒤 이 max_val_ga, max_val_se 를 서로 곱한 값을 출력(answer)한 식이 되겠습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/86491
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr