여니의 취준 준비/코딩테스트 (Python)

[n2477] 참외밭 in python

여니's 2021. 10. 30. 14:53


큰 정사각형에서 작은 정사각형을 빼주면

넓이를 구할 수 있다는 걸 발견하고

그 값을 구해서 K를 곱해주는 방식으로

구현을 하였다.

 

작은 정사각형의 넓이를 구하는 과정에서 살짝 헤맸으나

최장길이의 값의 인덱스를 활용하면

금방 구할 수 있다.

 

k = int(input())
array = [list(map(int, input().split())) for _ in range(6)]

longW = 0
longH = 0
longWidx = 0
longHidx = 0

shortW = 0
shortH = 0

# 왼쪽 : 2, 오른쪽: 1, 위 : 4, 아래 : 3
# longW => 왼쪽, 오른쪽 탐색
# longH => 위, 아래 탐색

for idx, temp in enumerate(array):
    if temp[0] == 1 or temp[0] == 2:
        if longW < temp[1]:
            longWidx = idx
            longW = temp[1]

    elif temp[0] == 3 or temp[0] == 4:
        if longH < temp[1]:
            longHidx = idx
            longH = temp[1]

shortW = abs(array[(longWidx - 1) % 6][1] - array[(longWidx + 1) % 6][1])
shortH = abs(array[(longHidx - 1) % 6][1] - array[(longHidx + 1) % 6][1])
print(abs(((longW * longH) - (shortW * shortH)))* k)