白準17140 2 D配列と演算
12181 ワード
https://www.acmicpc.net/problem/17140
これは一般的な実現に関する問題である.問題のポイントは、熱を整理するときにどのようにきれいにするかです.
Pythonで2次元配列を伝送する方法を用いて列を整理すれば,先に伝送した後に論理を適用してから伝送する方法で簡単に解決できる.
これは一般的な実現に関する問題である.問題のポイントは、熱を整理するときにどのようにきれいにするかです.
Pythonで2次元配列を伝送する方法を用いて列を整理すれば,先に伝送した後に論理を適用してから伝送する方法で簡単に解決できる.
r,c,k = list(map(int,input().split()))
a = []
for i in range(3):
a.append(list(map(int,input().split())))
def checkoperator(a): ## R연산이면 True C연산이면 False
row = len(a)
col = len(a[0])
if row >= col:
return True
else:
return False
def sorting(board):
rtn = []
cnt = 0
for row in board:
d = {}
for e in row:
if e == 0:
continue
if e in d:
d[e] += 1
else:
d[e] = 1
t = list(zip(d.keys(),d.values()))
t.sort(key = lambda x:(x[1], x[0]))
if len(t) >= 100:
t = t[0:100]
tmp = []
for x in t:
tmp.append(x[0])
tmp.append(x[1])
cnt = max(cnt, len(tmp))
rtn.append(tmp)
for i in range(len(rtn)):
while len(rtn[i]) != cnt:
rtn[i].append(0)
return rtn
time = 0
while time <= 100:
if len(a) >= r and len(a[0]) >= c:
if a[r-1][c-1] == k:
break
if checkoperator(a): ## R연산인경우
a = sorting(a)
else:
a = list(map(list,zip(*a)))
a = sorting(a)
a = list(map(list,zip(*a)))
time += 1
if time == 101:
time = -1
print(time)
Reference
この問題について(白準17140 2 D配列と演算), 我々は、より多くの情報をここで見つけました https://velog.io/@wook2pp/백준-17140-이차원-배열과-연산テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol