[알고리즘] 백준 7568 : 덩치 - S5

eternal moment·2023년 4월 27일
0

2023.04.27 풀이 - 실패

import sys
input=sys.stdin.readline
arr=[]
k=1
t=0

n=int(input())
for i in range(n):
    a,b=map(int, input().split())
    arr.append((a,b,i))

arr2=sorted(arr, reverse=True, key=lambda x:(x[0], x[1]))

for i in range(n-1):
    if arr2[i][1]>arr2[i+1][1]:
        arr[arr2[i][2]]=k
        k+=1+t
    else:
        arr[arr2[i][2]]=k
        t+=1
if arr2[n-2][1]>arr2[n-1][1]:
    arr[arr2[n-1][2]]=k
    k+=1+t
else:
    arr[arr2[n-1][2]]=k
    t+=1

print(*arr)

다른풀이

import sys
input=sys.stdin.readline
arr=[]

n=int(input())
for i in range(n):
    a,b=map(int, input().split())
    arr.append((a,b))

for i in arr:
    k=1
    for j in arr:
        if i[0]<j[0] and i[1]<j[1]:
            k+=1
    print(k, end=" ")

check point

  • "만일 자신보다 더 큰 덩치의 사람이 k명이라면 그 사람의 덩치 등수는 k+1이 된다"
    -> 자신보다 덩치가 큰 사람 카운트해서 +1 후 출력
    -> 2중 for문으로 n명을 n번 판별

0개의 댓글