덩치

yongju·2022년 12월 11일
0

BAEKJOON

목록 보기
28/40
post-thumbnail

❓문제

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

❗문제 정리

등수==그 사람보다 큰 사람수를 세는것!

📑코드

n=int(input())
data=[]
for _ in range(n):
    weight, height=map(int, input().split())
    data.append((weight, height))

result=[]
for i in range(n):
    over_people=0
    for j in range(n):
        if i==j:#자기 자신과의 비교 무의미
            continue
        elif data[i][0]<data[j][0] and data[i][1]<data[j][1]:#몸무게, 키가 모두 자기자신(i)보다 큰 사람의 수를 셈
            over_people+=1
    result.append(over_people)#자신보다 덩치 큰 사람들 수를 붙여 넣음

for i in result:
    print(i+1, end=' ')

📝코드 설명

n=int(input())
data=[]
for _ in range(n):
    weight, height=map(int, input().split())
    data.append((weight, height))

전체 사람수 n을 입력받고, 사람별 (무게,키)를 입력받는다.

result=[]
for i in range(n):
    over_people=0
    for j in range(n):
        if i==j:#자기 자신과의 비교 무의미
            continue
        elif data[i][0]<data[j][0] and data[i][1]<data[j][1]:#몸무게, 키가 모두 자기자신(i)보다 큰 사람의 수를 셈
            over_people+=1
    result.append(over_people)#자신보다 덩치 큰 사람들 수를 붙여 넣음

i,j를 이용하여 한 사람과 나머지 사람 전부를 비교한다. 이때, i==j이면 자기 자신과 비교하므로 무의미하다. ->continue
기준 i의 몸무게, 키가 다른 사람들인 j보다 작은 경우, 기준i보다 덩치가 큰 사람들의 수(over_people)를 센다.
i의 값이 변하기 전에 result에 붙여 넣는다.

  • 이렇게 하면 자연스럽게, 몸무게 또는 키 하나만 작은 경우 동점으로 처리하게 된다.(고민했던 부분)
for i in result:
    print(i+1, end=' ')

(기준i보다 덩치가 큰 사람들의 개수+1)==등수이다. 예를들어, i보다 덩치가 큰 사람의 수가 4라면, 등수는 1등부터 시작하므로 4+1하여 5등이 된다.

🎖제출 결과

💡insight

https://bgspro.tistory.com/61

profile
AI dev

0개의 댓글