Eat the ENAK
BOJ7568 - 덩치 본문
문제 바로가기
https://www.acmicpc.net/problem/7568
Solved.ac* 난이도
* Solved.ac는 백준 온라인 저지의 문제들에 난이도를 매겨주는 서비스입니다. 자세한 내용은 홈페이지를 참고해주세요.
본문
해설
https://github.com/return0927/CodingWrite-UP/blob/master/BOJ/7568/7568.py
이 문제도 분류가 브루트포스이다. 전수조사를 통해 풀 수 있음을 명심하고 풀이에 들어간다.
\(N\)명의 키와 몸무게가 주어지는데, \(N < 50\)이어서 아무리 커도 배열크기가 \(50 x 50\)을 넘지 않는다. 따라서 \(N x N\)짜리 2차원 배열을 생성하는 직관적 풀이를 해보자.
먼저 \(N\)명의 키와 몸무게를 받아오자.
N = int(input())
humans = []
for n in range(N):
weight, height = map(int, input().split(' '))
humans.append((weight, height))
이후 전수조사를 위한 2차원 배열을 만들어주고
# 전수조사 비교를 위한 2차원 배열 생성
matrix = [[False for x in range(N)] for y in range(N)]
배열을 전부 돌면서 체크해준다.
for i in range(N):
mw, mh = humans[i]
for j in range(N):
w, h = humans[j]
if mw > w and mh > h:
matrix[j][i] = True
이렇게되면 matrix[0][0] ~ matrix[n-1][n-1]의 대각선에 해당하는 경우는 자기 자신과 비교하게 되는 모습이 나온다. 그리고 각 행에 자기보다 큰 경우 True값을 넣어두었기 때문에 행에 대해 개수 체크만 해주면 된다.
ranks = [x.count(True) + 1 for x in matrix]
print(" ".join(map(str, ranks)))
'PS: Problem Solving > BOJ: 백준온라인저지' 카테고리의 다른 글
BOJ1001 - A-B (1) | 2019.10.31 |
---|---|
BOJ1000 - A+B (0) | 2019.10.30 |
BOJ1436 - 영화감독 숌 (0) | 2019.10.30 |
BOJ2750 - 수 정렬하기 (0) | 2019.10.30 |
BOJ2231 - 분해합 (0) | 2019.10.29 |
Comments