TIL: Python 학습 내용
오늘 풀어본 문제:
과일 장수가 사과 상자를 포장하는 문제입니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류되며, 한 상자의 가격은 상자에 담긴 사과 중 가장 낮은 점수(p)와 상자에 담긴 사과의 개수(m)의 곱으로 결정됩니다. 가능한 많은 사과를 팔았을 때 얻을 수 있는 최대 이익을 계산하는 함수를 작성합니다.
제한사항:
- 3 ≤ k ≤ 9
- 3 ≤ m ≤ 10
- 7 ≤ score의 길이 ≤ 1,000,000
- 1 ≤ score[i] ≤ k
- 이익이 발생하지 않는 경우에는 0을 return
구체적 구현:
def solution(k, m, score):
# 사과 점수를 내림차순으로 정렬
score.sort(reverse=True)
max_value = 0
# 상자를 구성하여 최대 이익을 계산
for i in range(0, len(score) - m + 1, m):
# 상자의 최저 점수는 i + m - 1 인덱스에 위치한 사과의 점수
box_min_score = score[i + m - 1]
# 상자당 이익은 최저 점수 * 상자의 크기
max_value += box_min_score * m
return max_value
- 초기 설정:
- 사과 점수를 내림차순으로 정렬합니다. 높은 점수부터 상자를 채워서 최대,최소 이익을 계산할 수 있게 합니다.
- 상자 구성:
- 상자의 크기 m만큼 반복하면서 상자를 구성합니다.
- 상자의 최저 점수를 계산하기 위해 현재 인덱스 i에서 i + m - 1의 위치에 있는 사과 점수를 사용합니다.
- 각 상자의 최저 점수에 상자 크기 m을 곱하여 최대 이익을 계산합니다.
- 결과 반환:
- 구한 최대 이익을 반환합니다.
오늘 배운 점:
- 리스트를 내림차순으로 정렬하여 최대 이익을 계산하는 방법을 배웠습니다.
TIL: SQL 학습 내용
오늘 풀어본 문제:
자동차 대여 회사에서 '네비게이션' 옵션이 포함된 자동차 리스트를 출력하는 문제입니다. 결과는 자동차 ID를 기준으로 내림차순 정렬합니다.
구체적 구현:
SELECT *
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS REGEXP '네비게이션'
ORDER BY CAR_ID DESC
- 조건 필터링:
- WHERE 절을 사용하여 OPTIONS 컬럼에 '네비게이션'이 포함된 행만 선택합니다.
- REGEXP 정규표현식을 사용하여 문자열 내에 특정 단어가 포함되어 있는지 확인합니다.
- 정렬:
- ORDER BY CAR_ID DESC를 사용하여 자동차 ID를 기준으로 내림차순 정렬합니다.
- 결과 반환:
- 조건을 만족하는 자동차 리스트를 반환합니다.
오늘 배운 점:
- 복습을 하였다.
'TIL' 카테고리의 다른 글
본 캠프 23일차 TIL (0) | 2024.07.16 |
---|---|
본 캠프 22일차 TIL (3) | 2024.07.15 |
본 캠프 20일차 TIL (0) | 2024.07.13 |
본 캠프 19일차 TIL (0) | 2024.07.12 |
본 캠프 18일차 TIL (0) | 2024.07.11 |