문제


내가 작성한 코드
# 전체 사람의 수 N 입력
n = int(input())
w_h = []
# N명의 몸무게와 키 받기
for i in range(n):
w_h.append(list(map(int, input().split())))
# N명의 덩치 등수 출력
for i in range(n):
print(len([a for a in w_h if (a[0] > w_h[i][0]) and (a[1] > w_h[i][1])]) + 1, end= ' ')
코드 설명
# 전체 사람의 수 N 입력
n = int(input())
w_h = []
> 변수 n 은 전체 사람의 수를 입력받기 위한 변수입니다.
> w_h 변수는 전체 사람의 수 N명만큼의 키와 몸무게의 값을 담기 위한 빈 리스트입니다.
> 처음 코드를 작성할 때 n = int(input().split()) 으로 해서 계속 typeerror 가 발생했는데, 조금 천천히 작성하자!!
# N명의 몸무게와 키 받기
for i in range(n):
w_h.append(list(map(int, input().split())))
> N명의 몸무게와 키를 받기 위해서 반복문을 사용했습니다.
> 한 명당 키와 몸무게가 한 줄로 빈칸을 두고 입력되기 때문에 input().split() 함수를 사용하였고, 몸무게와 키를 하나의 리스트로 묶어서 w_h 변수에 담기위해서 list(map(int, input().split())) 함수를 적용하였습니다.
# N명의 덩치 등수 출력
for i in range(n):
print(len([a for a in w_h if (a[0] > w_h[i][0]) and (a[1] > w_h[i][1])]) + 1, end= ' ')
> N명의 덩치 등수를 출력하기 위해서 반복문을 다시 사용하였습니다.
> 입력된 순서대로 출력을 해야하기 때문에 반복문을 한 번 더 사용했습니다.
> 등수 출력을 위해서 list compression을 사용하였고, 자기 자신을 비교하더라도 덩치가 좋다의 조건은 자기의 키와 몸무게 모두 초과로 값이 나와야 하기 때문에 위의 코드로 작성하였습니다.
> 마지막으로 등수가 1부터 시작해야하므로, 1을 더해주었습니다.
'Coding > 백준' 카테고리의 다른 글
| [1072번] 게임 (★) (0) | 2022.07.25 |
|---|---|
| [10971번] 외판원 순회 2 with Python (★) (0) | 2022.07.22 |
| [10757번] 기본 수학1 - 큰 수 A + B with Python (0) | 2022.07.21 |
| [2839번] 기본수학1 - 설탕 배달 with Python (★) (0) | 2022.07.21 |
| [2775번] 기본 수학1 - 부녀회장이 될테야 (★) (0) | 2022.07.21 |