백준 7568번
https://www.acmicpc.net/problem/7568
7568번: 덩치
우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩
www.acmicpc.net
1. 문제
우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다면 A의 덩치가 B보다 큰 셈이 된다. 그런데 서로 다른 덩치끼리 크기를 정할 수 없는 경우도 있다. 예를 들어 두 사람 C와 D의 덩치가 각각 (45, 181), (55, 173)이라면 몸무게는 D가 C보다 더 무겁고, 키는 C가 더 크므로, "덩치"로만 볼 때 C와 D는 누구도 상대방보다 더 크다고 말할 수 없다.
N명의 집단에서 각 사람의 덩치 등수는 자신보다 더 "큰 덩치"의 사람의 수로 정해진다. 만일 자신보다 더 큰 덩치의 사람이 k명이라면 그 사람의 덩치 등수는 k+1이 된다. 이렇게 등수를 결정하면 같은 덩치 등수를 가진 사람은 여러 명도 가능하다. 아래는 5명으로 이루어진 집단에서 각 사람의 덩치와 그 등수가 표시된 표이다.
이름(몸무게, 키)덩치 등수
A | (55, 185) | 2 |
B | (58, 183) | 2 |
C | (88, 186) | 1 |
D | (60, 175) | 2 |
E | (46, 155) | 5 |
위 표에서 C보다 더 큰 덩치의 사람이 없으므로 C는 1등이 된다. 그리고 A, B, D 각각의 덩치보다 큰 사람은 C뿐이므로 이들은 모두 2등이 된다. 그리고 E보다 큰 덩치는 A, B, C, D 이렇게 4명이므로 E의 덩치는 5등이 된다. 위 경우에 3등과 4등은 존재하지 않는다. 여러분은 학생 N명의 몸무게와 키가 담긴 입력을 읽어서 각 사람의 덩치 등수를 계산하여 출력해야 한다.
2. 내가 작성한 알고리즘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
n=int(input())
arr=[]
for i in range(n):
a,b=map(int,input().split())
arr.append([a,b])
arr2=[]
for i in range(n):
count=1
for j in range(n):
if arr[i][0] < arr[j][0] and arr[i][1] < arr[j][1]:
count+=1
arr2.append(count)
for d in arr2:
print(d,end=" ")
|
cs |
3. 이번 알고리즘을 통해 배운 점
여러 입력을 할 경우 변수의 개수를 알고 있으면 map함수를 변수의 개수를 모르면 list와 map함수를 사용해야 한다는 것을 알았다. 이 문제의 접근은 "몸무게와 키 둘다 컸을 시 등수를 카운트" 에 있다. 각 키와몸무게에 for문을 돌려 조건에 해당될 때 카운트를 늘려 등수를 매긴다.
배열의 생김새는 다음과 같다.
[0,0] 55 | [0,1] 185 |
[1,0] 58 | [1,1] 183 |
[2,0] 88 | [2,1] 186 |
[3,0] 60 | [3,1] 175 |
[4,0] 46 | [4,1] 155 |
[0,0,] 55를 기준으로 반복문을 돌려 자기보다 높은 수가 있으며,
[0,1] 185를 기준으로 반목문을 돌려 자기보다 높은 수가 있으면
count가 1증가.
-> arr2배열에 count를 저장.
... 반복
'Python > 백준 알고리즘 (파이썬)' 카테고리의 다른 글
동적 계획법 practice_02 가장 큰 부분 합 찾기 (0) | 2022.06.23 |
---|---|
동적 계획법 practice01_1로 만들기 (0) | 2022.06.22 |
스택 practice 01 _ 균형잡힌 세상 (0) | 2021.08.09 |
기본 수학 practice 04_ ACM 호텔 (0) | 2021.07.21 |
기본 수학 practice 04_ 달팽이는 올라가고 싶다. (0) | 2021.07.20 |