[SWEA] 4836. [Python S/Wトラブルシューティング基本]2日目-シェーディング[D 2]
11601 ワード
📚 質問する
https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do
色を重ねる.そこで、エリア内を探索すると、色をつけずに色をつけ、色をつけたら紫色にし、さらに1を加える.
📒 コード#コード#
では、板に色が塗られていなければcolor(1,2)に塗り、他の色だけが色が塗られている場合は紫色(3と書く)に変えます.
そして多色を塗った後、紫色の3の色を2次元配列から数えて出力します.
📒 コード#コード#
https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do
色を重ねる.そこで、エリア内を探索すると、色をつけずに色をつけ、色をつけたら紫色にし、さらに1を加える.
📒 コード#コード#
T = int(input())
for tc in range(1, T+1):
N = int(input()) # 칠할 영역의 개수
arr = [[0]*10 for _ in range(10)] # 10X10 배경
purple = 0
for _ in range(N):
r1, c1, r2, c2, color = map(int, input().split()) # r1,c1, r2,c2 인덱스와 color
for i in range(r1, r2+1):
for j in range(c1, c2+1):
if arr[i][j] == 0: # 판에 안 칠해져있으면 0이니 color로 칠한다.
arr[i][j] = color
else: # 칠해져 있는 판에 덧칠하면 보라색으로 바뀐다.
purple += 1
print(f'#{tc} {purple}')
同じ色を塗ってもいいと思い、コードを解いてみました.では、板に色が塗られていなければcolor(1,2)に塗り、他の色だけが色が塗られている場合は紫色(3と書く)に変えます.
そして多色を塗った後、紫色の3の色を2次元配列から数えて出力します.
📒 コード#コード#
T = int(input())
for tc in range(1, T+1):
N = int(input()) # 칠할 영역의 개수
arr = [[0]*10 for _ in range(10)] # 10X10 배경
for _ in range(N):
r1, c1, r2, c2, color = map(int, input().split()) # r1,c1, r2,c2 인덱스와 color
for i in range(r1, r2+1):
for j in range(c1, c2+1):
if arr[i][j] == 0: # 판에 안 칠해져있으면 0이니 color로 칠한다.
arr[i][j] = color
elif arr[i][j] != color: # 서로 다른 색이면 3으로 바꾼다, 3이어도 3으로 바꾸니 상관없다.
arr[i][j] = 3 # 보라색은 3으로 바꾼다.
purple = 0
for i in range(10):
for j in range(10):
if arr[i][j] == 3:
purple += 1
print(f'#{tc} {purple}')
🔍 結果:PASSReference
この問題について([SWEA] 4836. [Python S/Wトラブルシューティング基本]2日目-シェーディング[D 2]), 我々は、より多くの情報をここで見つけました https://velog.io/@yunhlim/SWEA-4836.-파이썬-SW-문제해결-기본-2일차-색칠하기-D2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol