일상코딩/백준 문제 풀이
백준 2477번 : 참외밭 (도움 안됨 주의)
코딩애벌레
2024. 3. 4. 01:18
import sys
input = sys.stdin.readline
K = int(input())
info = []
for i in range(6):
info.append(list(map(int, input().split())))
if info[0][0] == 1:
if info[1][0] == 3:
if info[2][0] == 1:
if info[3][0] == 3:
print(K * (info[4][1] * info[5][1] - info[1][1] * info[2][1]))
elif info[3][0] == 4:
print(K * (info[3][1] * info[4][1] - info[0][1] * info[1][1]))
elif info[2][0] == 2:
if info[2][1] < info[0][1]:
if info[3][0] == 3:
print(K * (info[0][1] * info[5][1] - info[2][1] * info[3][1]))
elif info[3][0] == 4:
print(K * (info[0][1] * info[1][1] - info[3][1] * info[4][1]))
else:
if info[5][0] == 3:
print(K * (info[2][1] * info[3][1] - info[0][1] * info[5][1]))
elif info[5][0] == 4:
print(K * (info[1][1] * info[2][1] - info[4][1] * info[5][1]))
elif info[1][0] == 4:
if info[2][0] == 1:
if info[3][0] == 3:
print(K * (info[3][1] * info[4][1] - info[0][1] * info[1][1]))
elif info[3][0] == 4:
print(K * (info[4][1] * info[5][1] - info[1][1] * info[2][1]))
elif info[2][0] == 2:
if info[2][1] < info[0][1]:
if info[3][0] == 3:
print(K * (info[0][1] * info[1][1] - info[3][1] * info[4][1]))
elif info[3][0] == 4:
print(K * (info[0][1] * info[5][1] - info[2][1] * info[3][1]))
else:
if info[5][0] == 3:
print(K * (info[1][1] * info[2][1] - info[4][1] * info[5][1]))
elif info[5][0] == 4:
print(K * (info[2][1] * info[3][1] - info[0][1] * info[5][1]))
elif info[0][0] == 2:
if info[1][0] == 3:
if info[2][0] == 1:
if info[2][1] < info[0][1]:
if info[3][0] == 3:
print(K * (info[0][1] * info[5][1] - info[2][1] * info[3][1]))
elif info[3][0] == 4:
print(K * (info[0][1] * info[1][1] - info[3][1] * info[4][1]))
else:
if info[5][0] == 3:
print(K * (info[2][1] * info[3][1] - info[0][1] * info[5][1]))
elif info[5][0] == 4:
print(K * (info[1][1] * info[2][1] - info[4][1] * info[5][1]))
elif info[2][0] == 2:
if info[3][0] == 3:
print(K * (info[4][1] * info[5][1] - info[1][1] * info[2][1]))
elif info[3][0] == 4:
print(K * (info[3][1] * info[4][1] - info[0][1] * info[1][1]))
elif info[1][0] == 4:
if info[2][0] == 1:
if info[2][1] < info[0][1]:
if info[3][0] == 3:
print(K * (info[0][1] * info[1][1] - info[3][1] * info[4][1]))
elif info[3][0] == 4:
print(K * (info[0][1] * info[5][1] - info[2][1] * info[3][1]))
else:
if info[5][0] == 3:
print(K * (info[1][1] * info[2][1] - info[4][1] * info[5][1]))
elif info[5][0] == 4:
print(K * (info[2][1] * info[3][1] - info[0][1] * info[5][1]))
elif info[2][0] == 2:
if info[3][0] == 3:
print(K * (info[3][1] * info[4][1] - info[0][1] * info[1][1]))
elif info[3][0] == 4:
print(K * (info[4][1] * info[5][1] - info[1][1] * info[2][1]))
elif info[0][0] == 3:
if info[1][0] == 1:
if info[2][0] == 3:
if info[3][0] == 1:
print(K * (info[4][1] * info[5][1] - info[1][1] * info[2][1]))
elif info[3][0] == 2:
print(K * (info[3][1] * info[4][1] - info[0][1] * info[1][1]))
elif info[2][0] == 4:
if info[2][1] < info[0][1]:
if info[3][0] == 1:
print(K * (info[0][1] * info[5][1] - info[2][1] * info[3][1]))
elif info[3][0] == 2:
print(K * (info[0][1] * info[1][1] - info[3][1] * info[4][1]))
else:
if info[5][0] == 1:
print(K * (info[2][1] * info[3][1] - info[0][1] * info[5][1]))
elif info[5][0] == 2:
print(K * (info[1][1] * info[2][1] - info[4][1] * info[5][1]))
elif info[1][0] == 2:
if info[2][0] == 3:
if info[3][0] == 1:
print(K * (info[3][1] * info[4][1] - info[0][1] * info[1][1]))
elif info[3][0] == 2:
print(K * (info[4][1] * info[5][1] - info[1][1] * info[2][1]))
elif info[2][0] == 4:
if info[2][1] < info[0][1]:
if info[3][0] == 1:
print(K * (info[0][1] * info[1][1] - info[3][1] * info[4][1]))
elif info[3][0] == 2:
print(K * (info[0][1] * info[5][1] - info[2][1] * info[3][1]))
else:
if info[5][0] == 1:
print(K * (info[1][1] * info[2][1] - info[4][1] * info[5][1]))
elif info[5][0] == 2:
print(K * (info[2][1] * info[3][1] - info[0][1] * info[5][1]))
elif info[0][0] == 4:
if info[1][0] == 1:
if info[2][0] == 3:
if info[2][1] < info[0][1]:
if info[3][0] == 1:
print(K * (info[0][1] * info[5][1] - info[2][1] * info[3][1]))
elif info[3][0] == 2:
print(K * (info[0][1] * info[1][1] - info[3][1] * info[4][1]))
else:
if info[5][0] == 1:
print(K * (info[2][1] * info[3][1] - info[0][1] * info[5][1]))
elif info[5][0] == 2:
print(K * (info[1][1] * info[2][1] - info[4][1] * info[5][1]))
elif info[2][0] == 4:
if info[3][0] == 1:
print(K * (info[4][1] * info[5][1] - info[1][1] * info[2][1]))
elif info[3][0] == 2:
print(K * (info[3][1] * info[4][1] - info[0][1] * info[1][1]))
elif info[1][0] == 2:
if info[2][0] == 3:
if info[2][1] < info[0][1]:
if info[3][0] == 1:
print(K * (info[0][1] * info[1][1] - info[3][1] * info[4][1]))
elif info[3][0] == 2:
print(K * (info[0][1] * info[5][1] - info[2][1] * info[3][1]))
else:
if info[5][0] == 1:
print(K * (info[1][1] * info[2][1] - info[4][1] * info[5][1]))
elif info[5][0] == 2:
print(K * (info[2][1] * info[3][1] - info[0][1] * info[5][1]))
elif info[2][0] == 4:
if info[3][0] == 1:
print(K * (info[3][1] * info[4][1] - info[0][1] * info[1][1]))
elif info[3][0] == 2:
print(K * (info[4][1] * info[5][1] - info[1][1] * info[2][1]))
아이디어를 생각하다 못해 그저 문제서 주어진대로 따라갔다.. 총 코드 166줄
육각형을 만든다면 나올 수 있는 경우의 수가 적기 때문에 직접 만들었고, 다음 나올 좌표 방향, 거리 범위 까지 조절하여 모든 경우를 구한 방법이다.
다른 분들은 이렇게 풀지마라.. 그냥 풀 수 있다는 것을 보여주고 싶었고, 한번 시작하니 우직하게 가보고 싶어서 했을 뿐. 시험 전 코드 구현하기를 해봤다.
728x90