본문 바로가기
TIL

본 캠프 21일차 TIL

by Data 학습자 2024. 7. 14.
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
  1. 초기 설정:
    •    사과 점수를 내림차순으로 정렬합니다. 높은 점수부터 상자를 채워서 최대,최소 이익을 계산할 수 있게 합니다.
  2. 상자 구성:
    •    상자의 크기 m만큼 반복하면서 상자를 구성합니다.
    •    상자의 최저 점수를 계산하기 위해 현재 인덱스 i에서 i + m - 1의 위치에 있는 사과 점수를 사용합니다.
    •    각 상자의 최저 점수에 상자 크기 m을 곱하여 최대 이익을 계산합니다.
  3. 결과 반환:
    •    구한 최대 이익을 반환합니다.

오늘 배운 점:

  • 리스트를 내림차순으로 정렬하여 최대 이익을 계산하는 방법을 배웠습니다.

TIL: SQL 학습 내용

오늘 풀어본 문제:

자동차 대여 회사에서 '네비게이션' 옵션이 포함된 자동차 리스트를 출력하는 문제입니다. 결과는 자동차 ID를 기준으로 내림차순 정렬합니다.

구체적 구현:

SELECT *
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS REGEXP '네비게이션'
ORDER BY CAR_ID DESC

 

 

  1. 조건 필터링:
    •    WHERE 절을 사용하여 OPTIONS 컬럼에 '네비게이션'이 포함된 행만 선택합니다.
    •    REGEXP 정규표현식을 사용하여 문자열 내에 특정 단어가 포함되어 있는지 확인합니다.
  2. 정렬:
    •    ORDER BY CAR_ID DESC를 사용하여 자동차 ID를 기준으로 내림차순 정렬합니다.
  3. 결과 반환:
    •    조건을 만족하는 자동차 리스트를 반환합니다.

오늘 배운 점:

  • 복습을 하였다.

'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