파이썬 백준 7568번
실버5
https://www.acmicpc.net/problem/7568
문제 보기
모든 사람을 비교하여 덩치 등수를 구하는 문제
분류: 구현, 브루트포스 알고리즘
문제 풀기
기준이 되는 한 명을 선택하여 그에 대한 나머지 사람들과 덩치를 비교하여 순위를 매긴다.
2차원 배열 형태로 사람들을 입력받는다. 리스트의 사람 수 만큼 for 문을 돌리면서 변수 i 로 각각 매번 기준을 잡고 j 번째 사람과 비교를 하는데 현재의 사람 i 의 덩치보다 비교 대상 j 의 덩치가 더 클 경우 ranking 을 증가시킨다.
if person_ls[i][0] < person_ls[j][0] and person_ls[i][1] < person_ls[j][1]:
ranking += 1;
매번 i 가 끝날때마다 ranking_ls 에 index 에 맞게 저장을 한다.
모든 중복 for 문이 돌고 나면 ranking_ls 를 return 시킨다.
코드 보기
import sys
inputdata = sys.stdin.readline
def fnStrongPhysique(person_ls):
ranking_ls = [None] * N
for i in range(len(person_ls)):
ranking = 1
for j in range(len(person_ls)):
if person_ls[i][0] < person_ls[j][0] and person_ls[i][1] < person_ls[j][1]:
ranking += 1;
ranking_ls[i] = ranking
return ranking_ls
if __name__ == "__main__":
N = int(inputdata().strip())
person_ls = [list(map(int, inputdata().split())) for _ in range(N)]
print(person_ls) # test print
result = fnStrongPhysique(person_ls)
print(*result)
# 6
# 55 181
# 54 181
# 56 181
# 55 179
# 56 182
# 54 190
# [[55, 181], [54, 181], [56, 181], [55, 179], [56, 182], [54, 190]]
# 2 2 1 3 1 1
'공부하기 > 백준' 카테고리의 다른 글
[Python] 백준 풀기 3053 - 택시 기하학 (0) | 2022.10.26 |
---|---|
[Python] 백준 풀기 2563 - 색종이 (0) | 2022.10.25 |
[Python] 백준 풀기 11650 - 좌표 정렬하기 (0) | 2022.10.23 |
[Python] 백준 풀기 2477 - 참외밭 (0) | 2022.10.22 |
[Python] 백준 풀기 1149 - RGB거리 (0) | 2022.10.21 |