반응형
1. 문제
2. 코드
k = int(input())
l = []
l_no = []
max_h = 0
max_w = 0
for m in range(6):
i, j = map(int, input().split())
l.append(j)
if i >= 3 and max_h < j:
max_h = j
max_h_idx = m
elif i <= 2 and max_w < j:
max_w = j
max_w_idx = m
l_no.append(max_w_idx)
l_no.append(max_h_idx)
temp = max_w_idx - 1
if temp < 0:
temp += 6
l_no.append(temp)
temp = max_w_idx + 1
if temp > 5:
temp -= 6
l_no.append(temp)
temp = max_h_idx - 1
if temp < 0:
temp += 6
l_no.append(temp)
temp = max_h_idx + 1
if temp > 5:
temp -= 6
l_no.append(temp)
square = 1
for i in range(6):
if i not in l_no:
square *= l[i]
print((max_w * max_h - square)*k)
3. 풀이
그다지 좋은 코드는 아닌 것 같지만,,,
생각해보면 항상 큰 직사각형에서 작은 직사각형이 빠진 형태로 생긴 것을 알 수 있다.
가장 긴 가로, 가진 긴 세로를 찾아서 큰 사각형의 넓이를 구해주고, 비어있는 작은 사각형 부분의 넓이를 구해서 빼주는 걸로 했다.
이 때, 작은 사각형의 세로와 가로 길이는 가장 긴 가로, 가장 긴 세로와 맞닿지 않은 변이다.
따라서 가장 긴 가로, 가장 긴 세로, 그리고 이 두변과 맞닿아 있는 변들을 l_no 리스트에 넣어서 l_no에 없는 변들을 곱하여 작은 사각형 부분의 넓이(square)을 구했다.
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 2981 - 검문 (파이썬) (0) | 2022.08.20 |
---|---|
[백준] 1358 - 하키 (파이썬) (0) | 2022.08.18 |
[백준] 11478번 - 서로 다른 부분 문자열의 개수 (파이썬) (0) | 2022.08.17 |
[백준] 14425번 - 문자열 집합 (python 파이썬) (0) | 2022.08.15 |
[백준] 10815번 - 숫자 카드 (파이썬) (0) | 2022.06.27 |