728x90
📌 문제
https://www.acmicpc.net/problem/2477
📌 문제 접근 방법
- ㄱ 모양의 도형의 넓이를 구하는 방법 : (큰 사각형 넓이) - (작은 사각형 넓이)
- 작은 사각형 한 변의 길이 : 가장 긴 변과 맞닿은 두변의 차의 절댓값
가장 긴 변 160과 맞닿은 두 변 : 30, 50
20 = abs(30 - 50)
📌 코드
# 백준 2477 참외밭
K = int(input())
lengths = []
max_even = max_odd = even_idx = odd_idx = -1
# 어차피 가로-세로-가로-세로-... 순으로 정렬되어있기 때문에 가로, 세로를 구분할 필요x
for i in range(6):
way, length = map(int, input().split())
if not i%2 and max_even < length:
max_even = length
even_idx = i
elif i%2 and max_odd < length:
max_odd = length
odd_idx = i
lengths.append(length)
# '홀수 번째 중 가장 큰 변'과 양 옆으로 맞닿아있는 변들의 차 = 짝수 번째 중 작은 사각형의 길이
sub_even = abs(lengths[odd_idx-1] - lengths[(odd_idx+1)%6])
sub_odd = abs(lengths[even_idx-1] - lengths[(even_idx+1)%6])
width = (max_even * max_odd) - (sub_even * sub_odd)
print(K * width)
728x90
'ALGORITHM > BAEKJOON' 카테고리의 다른 글
[BOJ/Python] 14499.주사위 굴리기 (0) | 2022.03.05 |
---|---|
[BOJ/Python] 13460.구슬 탈출 2 (0) | 2022.03.02 |
[BOJ/Python] 21608.상어 초등학교 (0) | 2022.02.27 |
[BOJ/Python] 20055.컨베이어 벨트 위의 로봇 (0) | 2022.02.27 |
[BOJ/Python] 2096. 내려가기 (0) | 2021.12.08 |
댓글