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
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[백준][Python] 1436. 영화감독 숌 (0) | 2022.07.16 |
---|---|
[백준][Python] 1018. 체스판 다시 칠하기 (0) | 2022.07.15 |
[백준][Python] 2231. 분해합 (0) | 2022.07.15 |
[백준][Python] 2798번. 블랙잭 (0) | 2022.07.14 |
[백준][Python] 17478번. 재귀함수가 뭔가요? (0) | 2022.07.08 |