n = int(input())
time = []
for _ in range(n):
tmp = list(map(int, input().split()))
time.append(tmp)
time = sorted(time, key=lambda a: a[0])
time = sorted(time, key=lambda a: a[1])
last = 0
cnt = 0
for i, j in time:
if i >= last:
cnt += 1
last = j
print(cnt)
3-1. reverse
3-2. key
lambda 매개변수 : 실행문(전달 값)
# 일반 함수
def Adder(x, y):
add = x + y
return add
# 람다 함수
print('add =', (lambda x, y : x + y) (10, 20))
n = int(input())
lst = []
for _ in range(n):
w = int(input())
lst.append(w)
lst.sort(reverse=True)
result = []
for j in range(n):
result.append(lst[j] * (j+1))
print(max(result))
처음엔 그냥 가장 작은 값에 n을 곱하면 되는거 아닌가 생각했지만 당연히 실패...
병렬 연결이니까 최대 n개 연결 가능
그럼 가장 작은 중량에 n개가 할당됨
더 큰 중량은 당연히 그 중량을 버틸 수 있기 때문에
그래서 각 중량을 내림차순으로 정렬한 후, n을 1부터 곱해주어 새로운 리스트에 저장
리스트 중 가장 큰 값이 답!
n = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
A.sort()
result = 0
for i in range(n):
x = A[i]
y = B.pop(B.index(max(B)))
result += x*y
print(result)
처음엔 리스트 B를 정렬해서 풀었으나, 문제 조건에 그러지 말라고 써져있어서 다시 풀었다.
index(x) 함수는 리스트에 x 값이 있으면 x의 인덱스 값을 리턴한다!
insert(a, b) 함수는 a번째 위치에 b를 삽입하는 함수이다.
remove(x)는 리스트에서 첫 번째로 나오는 x를 삭제하는 함수이다.
pop()은 리스트의 맨 마지막 요소를 리턴하고 그 요소는 삭제한다.
정렬 후에 사용하면 최대 값만 제거 가능