반응형
리뷰
딕셔너리를 활용해 풀고자 했는데 참외밭의 모양마다 작은 면적의 인덱스가 달라 어려움을 겪었다. 리스트 인덱스를 통한 풀이 방법으로 통과
문제 풀이
- 방향과 길이를 리스트를 초기화 후 각각의 리스트에 값을 전달해 준다.
- 먼저 큰 사각형의 가로 세로 길이부터 구해준다.
- 작은 사각형의 가로의 길이는 큰 사각형과 인접해 있는 가로 길이의 차이다. 절댓값을 활용해 줬다.
- 작은 사각형의 세로길이도 마찬가지로 큰 사각형과 인접해 있는 세로 길이의 차이다.
- 큰 사각형에서 작은 사각형을 빼준 후 1m^2당 참외 갯수를 더해주면 된다.
참고 사항
인접한 인덱스를 구할 때 i - 1, i + 1로 해줄 경우 인덱스 에러가 날 가능성이 있으므로 % 6을 통해 인덱스를 범위 내에서 잘 지정해 주자
정답 코드
def q2477():
# 백준 2477번 참외밭 파이썬
k = int(input())
dist = []
length = []
for _ in range(6):
d, l = map(int, input().split())
dist.append(d)
length.append(l)
big_w, big_h = 0, 0
for i in range(6):
if dist[i] == 1 or dist[i] == 2:
big_w = max(big_w, length[i])
if dist[i] == 3 or dist[i] == 4:
big_h = max(big_h, length[i])
small_w, small_h = 0, 0
for i in range(6):
if dist[i] == 1 or dist[i] == 2:
if length[i] == big_w:
small_h = abs(length[(i + 1) % 6] - length[(i + 5) % 6])
if dist[i] == 3 or dist[i] == 4:
if length[i] == big_h:
small_w = abs(length[(i + 1) % 6] - length[(i + 5) % 6])
print(k * ((big_w * big_h) - (small_w * small_h)))
q2477()
728x90
반응형
'알고리즘 공부 > 파이썬(Python)' 카테고리의 다른 글
백준 2527번 직사각형 파이썬 (0) | 2024.06.28 |
---|---|
백준 10158번 개미 파이썬 (4) | 2024.06.28 |
백준 14696번 딱지놀이 파이썬 (0) | 2024.06.26 |
백준 2669번 직사각형 네개의 합집합의 면적 구하기 파이썬 (0) | 2024.06.26 |
SWEA 1486번 D4 장훈이의 높은 선반 파이썬 (0) | 2024.06.26 |