7568. 덩치
7568번: 덩치
우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩
www.acmicpc.net
- 내 풀이
- 입력받은 순으로 출력해야함 -> 딕셔너리
- 몸무게순으로 정렬 후 키 비교
- 몸무게는 작아도 키는 더 클 수 있기때문에 for문 2번돌면서 각각 비교해야함
- 무조건 키, 몸무게가 더 커야하기 때문에 몸무게가 동일할때는 세지x
- 사용한 반례
#반례
6
55 181
54 181
56 181
55 179
56 182
54 190
#결과
2 2 1 3 1 1
from collections import defaultdict
n=int(input())
dic= {}
for i in range(n):
dic[i]=list(map(int,input().split()))
val=list(dic.items())
val.sort(key=lambda x:x[1][0], reverse=True)
tmp=[1]*n
cnt=0
for i in range(n-1):
for j in range(i+1,n):
if val[i][1][0] == val[j][1][0]: continue
if val[i][1][1]> val[j][1][1]:
tmp[val[j][0]]+=1
print(*tmp)
- 다른 사람 풀이
- 정렬할 필요 없이 완전탐색하면 되는 문제....
n = int(input())
data = [] # 입력받은 정보를 저장할 리스트 data
ans = [] # 등수정보를 저장할 리스트 ans
for i in range(n):
a, b = map(int, input().split())
data.append((a, b)) # 몸무계와 키를 묶어서 append 해줌
for i in range(n):
count = 0
for j in range(n):
if data[i][0] < data[j][0] and data[i][1] < data[j][1]: # 몸무게와 키 모두 자신보다 큰 사람의 수를 센다
count += 1
ans.append(count + 1) # 덩치 등수는 자신보다 몸무계 키 모두 큰 사람의 수 + 1 이므로 count + 1을 ans에 append한다.
for d in ans:
print(d,end=" ")
'코딩테스트 > BOJ' 카테고리의 다른 글
| [백준] [이진 탐색] [최장증가수열] 12015. 가장 긴 증가하는 부분 수열 2 (0) | 2023.05.06 |
|---|---|
| [백준] [BFS] 4963. 섬의 개수 (0) | 2023.05.02 |
| [백준] [DP] 14501. 퇴사 (0) | 2023.04.30 |
| [백준][이진탐색] 2473. 세 용액 (0) | 2023.04.29 |
| [백준] [BFS] 14503. 로봇 청소기 (0) | 2023.04.28 |