내가 시도한 방법
kg
와 cm
배열에 받아준다.ans
배열 : 본인 순서를 인덱스로 하여 등수가 담길 1차원 리스트for
문을 통해 내가 아니면서(i != j
),ans[i]
에 등수(cnt+1
할당)N = int(input())
students = [list(map(int, input().split())) for i in range(N)]
kg, cm = zip(*students)
ans = [0] * N
for i in range(N):
cnt = 0
for j in range(N):
if i != j and (kg[i] < kg[j] and cm[i] < cm[j]):
cnt += 1
ans[i] = cnt+1
print(*ans)
[참고]
1번을 수행할 때, 아래와 같이 for
문을 사용해도 되지만,
zip이 흩어져있는 배열을 하나로 묶어주듯이, 반대의 역할을 하는 무언가가 있지 않을까 하는 생각이 들어 찾아보다가 zip
과 *(언패킹)
활용 방법을 발견 적용시켰다.
kg, cm = [], []
for _ in range(N):
v1, v2 = map(int, input().split())
kg.append(v1)
cm.append(v2)
더 고민해보기
for
문을 1번만 사용하는 방법으로 풀어보고 싶다.