본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬] 18429번 두 스티커

by 현장 2022. 5. 18.

-Code

h, w = map(int, input().split())
n = int(input())
arr = [list(map(int, input().split())) for _ in range(n)]
result = 0

for i in range(n):
    for j in range(i + 1, n):
        x1, y1 = arr[i]
        x2, y2 = arr[j]

        if (x1 + x2 <= h and max(y1, y2) <= w) or (y1 + y2 <= h and max(x1, x2) <= w):
            result = max(result, x1 * y1 + x2 * y2)
        if (x1 + x2 <= w and max(y1, y2) <= h) or (y1 + y2 <= w and max(x1, x2) <= h):
            result = max(result, x1 * y1 + x2 * y2)
        if (x1 + y2 <= h and max(y1, x2) <= w) or (y1 + x2 <= h and max(x1, y2) <= w):
            result = max(result, x1 * y1 + x2 * y2)
        if (x1 + y2 <= w and max(y1, x2) <= h) or (y1 + x2 <= w and max(x1, y2) <= h):
            result = max(result, x1 * y1 + x2 * y2)

print(result)

if문을 중첩되게 사용해서 코드가 처음에 꼬여서 정확한 조건을 찾아서 해결을 하였습니다. 조건문을 제대로 못찾은 것이 조금 아쉬운 문제였습니다.