728x90
📚문제
📝풀이
# 7568번 덩치
n = int(input())
body = []
for _ in range(n):
x,y = map(int,input().split())
body.append([x,y])
result = []
for i in body:
rank = 1
new_body = list(filter(lambda x : x !=i,body))
for j in new_body:
if i[0] < j[0] and i[1] < j[1]:
rank += 1
result.append(str(rank))
print(' '.join(result))
실버라서 긴장했는데 생각보다 쉽게 풀렸다
한가지 새로 알게된 개념은
filter
리스트에서 remove 함수를 사용하게 되면
변수에 할당하는 것이 아니라 remove된 리스트만 반환하기 때문에 변수로 설정할 수 없다
그래서 자기 자신의 몸무게와 키를 제외하기 위해
다음과 같이 코드 작성
list(filter(lambda x : x !=i,body))
filter 함수는
조건을 만족하는 요소들로 이루어진 새로운 iterable 생성한다
여기서는 body 리스트에서
자기 자신과 같지 않은 원소들을
필터링 하여 리스트로 저장
(필터함수 또한 map 함수와 유사하게 filter 객체를 생성하기 때문)
728x90
'Python(알고리즘,문제풀이) > BOJ(Silver V)' 카테고리의 다른 글
백준 / 연도 진행바 / Python / 구현,문자열,파싱 (0) | 2024.01.30 |
---|---|
백준 / 1312번 / 소수 / Python / 수학 (1) | 2024.01.29 |
백준 / 1251번 / 단어 나누기 / Python / 구현,문자열,브루트포스알고리즘,정렬 (1) | 2024.01.28 |
백준 / 1010번 / 다리 놓기 / Python / 수학,DP,조합 (1) | 2024.01.27 |
백준 / 1436번 / 영화감독 숌 / Python / 브루트포스 알고리즘 (0) | 2023.12.28 |