3중 for 문으로
for i in range(3):
for j in range(N):
tmp = 1
res[j] += point[j]
for k in range(N):
if point[j] < point[k]:
tmp += 1
rank[j]=tmp
print(" ".join(map(str,rank)))
# print(*rank)
돌리니 시간초과 나서 dict 사용해서
sort 하니 괜찮았다.
코드는 더러웠지만..
import sys
input = sys.stdin.readline
N = int(input())
score = [0] * N
rank = [0] * N
total = [0] * N
result =[0] * N
# 값, 인덱스 로 자료 저장 후 순위 따로 정리 후 인덱스 별로 sort 한 후 출력
for i in range(3):
point = list(map(int,input().split()))
for j in range(N):
score[j] = (point[j],j)
total[j] += point[j]
score.sort(reverse=True)
# 큰 수대로 정렬되는 중
tmp = 1
for k in range(N):
if k == 0:
rank[k] = (tmp,score[k][1])
continue
if score[k-1][0] == score[k][0]:
tmp+=1
rank[k] = (rank[k-1][0],score[k][1])
else:
tmp+=1
rank[k] = (tmp,score[k][1])
rank.sort(key=lambda x:x[1])
for res in range(len(rank)):
result[res] = rank[res][0]
print(*result)
tmp = 1
for j in range(N):
score[j] = (total[j],j)
score.sort(reverse=True)
for k in range(N):
if k == 0:
rank[k] = (tmp,score[k][1])
continue
if score[k-1][0] == score[k][0]:
tmp+=1
rank[k] = (rank[k-1][0],score[k][1])
else:
tmp+=1
rank[k] = (tmp,score[k][1])
rank.sort(key=lambda x:x[1])
for res in range(len(rank)):
result[res] = rank[res][0]
print(*result)
for문 안에 for문 한번 더 돌릴바에
밖에서 for문이랑 sort를 오지게 하는게 낫구나.
홀리,,