코딩테스트/백준

[백준][Python] 7568. 덩치

내만 2022. 7. 15. 16:40
728x90
반응형

 

 

 

 

 

 

🙆‍♂️문제


 

 

🙋‍♂️풀이


문제요약 : 덩치 비교 알고리즘을 만드는 것인데, 덩치란 키와 몸무게를 비교했을 때 숫자가 더 높은 사람이 덩치가 큰 사람이 된다. 이 때 비교대상과 비교했을 때 키는 크고 몸무게가 작다면 덩치의 크고 작음을 구분할 수 없기 때문에 그대로 둔다.

사람 수가 입력되고 각각의 몸무게와 키가 입력된다. 이 때 1번 사람보다 덩치가 큰사람의 수를 k명이라고 하면 1번의 덩치 등수는 1+k다 각 사람의 등수를 구해라.

 

 

 

🚀입력받기


n = int(input())
bulk = [list(map(int, input().split())) for _ in range(n)]

먼저 케이스 수를 입력받고 각 케이스에 대한 정보를 입력받는다.

각 케이스에 대한 정보는 2차원 리스트로 입력받는다.

 

win=[]
for i in range(n):
    win.append(1)

그리고 등수 정보를 위해 win배열을 만들어준다.

 

🚀 등수 비교


for i in range(n-1):
    for j in range(i+1,n):
        if (bulk[i][0] > bulk[j][0]) & (bulk[i][1] > bulk[j][1]):
            win[j]+=1
        elif (bulk[i][0] < bulk[j][0]) & (bulk[i][1] < bulk[j][1]):
            win[i]+=1

간단하다.

for문 2개를 사용해서 하나는 0부터 n-1까지 하나는 i+1부터 n까지 비교를 하면 모든 경우의 수를 비교할 수 있다.

 

인덱스 i가 덩치 큰 경우와 j가 덩치 큰 경우를 나눠서

i가 크면 j의 win배열 값을 1 더해주고 j가 크면 i의 win배열 값을 1 더해줬다.

 

 

🚀 출력하기


for i in win:
    print(i,end=" ")

win배열에 이미 정답을 저장해놨다. for in을 사용해서 출력해주면 끝.

 

728x90
반응형