Baekjoon Case

[백준 #7568] 덩치등수구하기 - 파이썬(python)

Scarlett_C 2021. 8. 10. 14:25
728x90

 

https://www.acmicpc.net/problem/7568

예시 케이스에만 적용된다고 통과하는것이 아니고, 

이외의 발생할 수 있는 예외케이스를 생각해서 코드를 짜야한다..

N=int(input())
weight=[i for i in range(N)]
height=[i for i in range(N)]
rank=[0 for i in range(N)]
for i in range(N):
    weight[i],height[i]=map(int,input().split())
i=1
while True:
    temp=0
    a=weight.index(max(weight))
    if max(height)==height[a]:
        rank[a]=i
        weight[a]=height[a]=0
    else: 
        for j in range(len(height)):
                if height[a]<height[j]:
                    rank[j]=i
                    weight[j]=height[j]=0
                    temp+=1
        rank[a]=i        
        weight[a]=height[a]=0
    i=i+temp+1
    if max(weight)==0: break

처음에는 이렇게 등수만 생각하고

비교 할 수 없는 값은 한번에 처리해서 +1 등수로 했는데 계속 틀렸다.

 

문제에 등수가 자기보다 덩치 큰 사람의 수 +1이라고 되어 있어서 뭐지..? 하다가

비교 할 수 없는 값 사이에도 중간값 처럼 비교할 수 있는 값이 있을 수 있다는 생각이 들었다.

 

N=int(input())
weight=[i for i in range(N)]
height=[i for i in range(N)]
rank=[0 for i in range(N)]
for i in range(N):
    weight[i],height[i]=map(int,input().split())

for i in range(N):
    cnt=0
    for j in range(N):
        if i==j: pass
        elif weight[i]<weight[j]:
            if height[i]<height[j]:
                cnt+=1
    rank[i]=cnt+1

for num in rank:
    print(num,end=' ')

 

괜히 브루트포스 단계에 있던 문제가 아니었음..

simple 하게 끝

728x90