728x90
2669번: 직사각형 네개의 합집합의 면적 구하기 (acmicpc.net)
22/09/08
이 문제 또한 브론즈 문제 치고는 독특한 아이디어를 가지고 있다.
얼핏 봐서는 기하학 문제처럼 보이지만, 그렇게 풀면 정말 어렵고, 직접 그림을 그림으로써 해결하는 문제이다.
문제 접근 방식:
그냥 직접 그림을 스케치북에 그리듯이 그림으로써 해결한다.
좌표를 2차원좌표로 받고 거기에 해당하는 곳을 모두 1로 바꿔주면 구현 끝!
어렵게 생각하면 오히려 꼬이는 문제다.
아래는 내가 위의 접근 방식과 같이 작성한 파이썬 코드이다. 더보기를 누르면 확인할 수 있다.
더보기
# 2669번 직사각형 네개의 합집합의 면적 구하기
# 구현
sketch_book = [[0 for _ in range(101)] for _ in range(101)]
for _ in range(4):
start_x, start_y, end_x, end_y = map(int, input().split())
for x in range(start_x, end_x):
for y in range(start_y, end_y):
sketch_book[x][y] = 1
print(sum([sum(sketch_book[x]) for x in range(101)]))
'알고리즘 > 백준 문제 풀이' 카테고리의 다른 글
[Python] 1246번 온라인 판매 (0) | 2022.09.26 |
---|---|
[Python] 25371번 k진수 정수의 자릿수 나누기 (0) | 2022.09.21 |
[Python] 1236번 성 지키기 (0) | 2022.09.21 |
[Python] 11659번 구간 합 구하기 4 (0) | 2022.09.21 |
[Python] 1711번 직각삼각형 (0) | 2022.09.21 |