사용 언어 - Python3
문제 - 최소직사각형
정답
큰 값은 w에 작은 값에 h에 append하는 완전 탐색 문제 (정답 맞춘 여부 X)
정답 풀이
x,y 값이 최대가 되는 값을 찾아야한다. 하지만, x와 y는 회전시킬 수도 있다.
그렇기 때문에 x,y 값 중큰 값을 한쪽 리스트에 append하고, 작은 값을 다른 리스트에 append하고
각 리스트에서 max 값을 찾으면 가장 큰 가로축, 세로축을 구할 수 있다.
# 정답
def solution(sizes):
w,h = [], []
for i in range(len(sizes)):
if sizes[i][0] >= sizes[i][1]:
w.append(sizes[i][0])
h.append(sizes[i][1])
else:
w.append(sizes[i][1])
h.append(sizes[i][0])
return max(w)*max(h)
나는 너무 어렵게 생각한 것 같다...
# 나의 접근방식 - 오답
def solution(sizes):
answer = 0
size_x, size_y = [], []
for size in sizes:
size_x.append(size[0])
size_y.append(size[1])
for i in range(len(sizes)):
for j in range(len(sizes)):
answer = size_x[i]*size_y[j]
result = 0
for size in sizes:
if (size_x[i] >= size[0] and size_y[i] >= size[1] and answer >= size[0]*size[1]):
result += 1
elif (size_x[i] >= size[1] and size_y[i] >= size[0] and answer >= size[0]*size[1]):
result += 1
if result == len(sizes):
return answer
레퍼런스
- 정답 참고
- 정답 깃허브
'Algorithm > 완전탐색' 카테고리의 다른 글
[프로그래머스 lv 2] 모음사전 (0) | 2023.02.15 |
---|---|
[프로그래머스 lv2] 피로도 (0) | 2023.02.10 |
[프로그래머스 lv 2] 카펫 (0) | 2023.02.07 |
[프로그래머스 lv 2] 소수 찾기 (0) | 2023.02.07 |
[프로그래머스 lv 1] 모의고사 (0) | 2023.02.06 |
댓글