[規格]2669四角形の和セットの面積python
5337 ワード
4つの長方形とセットの面積を求めます
質問する
平面には4つの長方形があり、その底辺は横軸に平行です.この4つの矩形は互いに分離してもよいし、重なり合ってもよいし、1つは別のものを含んでもよいし、変異してもよいし、頂点が重なり合ってもよい.
これらの矩形の面積を求めるプログラムを作成してください.
入力
四角形の位置を表す4行の整数を4つずつ入力します.1番目と2番目の整数は矩形左下頂点のx座標、y座標であり、3番目と4番目の整数は矩形右上頂点のx座標、y座標である.すべてのx座標およびy座標は、1以上100未満の整数である.
しゅつりょく
1行目は4つの長方形が占める面積を出力します.
ソリューション
2 D配列を作成し、各長方形を巡回します.
長方形を迂回して、訪問先を1に塗ります.
長方形を回転させ、1塗りの箇所の和を正解として出力します.
import pprint
board = [[0 for j in range(100)] for i in range(100)] # 100 x 100 그리드 만들기
for _ in range(4) : #4개의 직사각형을 돌며
a, b, c, d = map(int, input().split()) #각 좌표를 a,b,c,d에 저장
for i in range(a, c) : #i가 직사각형 면적 안에 있게 하기 위해 for문을 돌린다.
for j in range(b, d) : #y좌표를 돌며 값을 입력시킨다.
if board[i][j] == 1 : #만약 값이 입력되어 있으면
continue #continue
else :
board[i][j] = 1 #아니면 값을 입력한다. (직사각형이 겹치지 않게 하기 위해서 )
ans = 0
for i in range(100): #좌표를 돌며 최종적으로 값이 입력되어있으면 더한다.
for j in range(100):
if board[i][j] == 1 :
ans += 1
print(ans)
Reference
この問題について([規格]2669四角形の和セットの面積python), 我々は、より多くの情報をここで見つけました https://velog.io/@holawan/백준-2669직사각형-네개의-합집합의-면적-pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol