최댓값과 최솟값
https://school.programmers.co.kr/learn/courses/30/lessons/12939
갑자기 문제 난이도가 낮아졌다.
그렇지만 절대 하루에 코드카타 두개를 풀어선 안돼.
그래서 두가지 방법으로 풀어봄.
# max, min
# O(n)
def solution_min_max(s):
s_lst = list(map(int, s.split()))
answer = str(min(s_lst)) + " " + str(max(s_lst))
return answer
첫번째는 max, min을 사용한 방법.
s = "1 2 3 4" 라는 문자열이라고 했을 때,
우선 문자열로 들어오는 s를 공백 기준으로 나눠 리스트로 변환. -> [1, 2, 3, 4]
해당 리스트의 최솟값 + 공백 + 리스트의 최댓값 출력하면 끝.
# 정렬
# O(n log n)
def solution_sorted(s):
s_lst = sorted(list(map(int, s.split())))
answer = str(s_lst[0]) + " " + str(s_lst[-1])
return answer
두번째는 정렬을 사용한 방법.
문자열을 리스트로 변환하는 과정까지는 동일.
리스트를 오름차순 정렬 후, 리스트의 첫번째 인자 + 공백 + 마지막 인자 출력하면 끝.
- max, min을 사용하면 O(n)의 시간복잡도를 가짐.
- 정렬을 사용하면 O(n log n)의 시간복잡도를 가짐.
즉 max, min을 사용한 방법이 더 효율적이라고 할 수 있다.
SQL 1주차 과제
문제 : 음식 종류별 가장 높은 주문 금액과 가장 낮은 주문금액을 조회하고, 가장 낮은 주문금액 순으로(내림차순) 정렬하기
가져올 컬럼 : 음식 종류, 가장 높은 주문금액, 가장 낮은 주문금액
어떤 테이블로부터 : food_orders
조건 : X
어떤 항목을 기준으로 조회 : 음식 종류
어떤 항목을 기준으로 정렬 : 가장 낮은 주문금액(내림차순)
select cuisine_type, max(price) max_price, min(price) min_price
from food_orders
group by cuisine_type
order by min(price) desc
오늘의 회고
SQL은 아직 할만하다. 오늘도 2주차 과제까지 완료.
알고리즘을 안한지 얼마 되지도 않았는데 벌써 추억으로 남았다. 큰일났다 그냥.
내일은 쉬면서 CS 공부하자
'매일 TIL' 카테고리의 다른 글
[내일배움캠프 7-2일] SQL 4주차 (0) | 2024.08.06 |
---|---|
[내일배움캠프 7-1일] 피보나치 수, SQL 3주차 (0) | 2024.08.05 |
[내일배움캠프 6-4일] 신고 결과 받기, SQL 1주차 (0) | 2024.08.01 |
[내일배움캠프 6-2일] 코드카타, RVC 음성합성 AI(1) (0) | 2024.07.30 |
[내일배움캠프 6-1일] 코드카타, 프로토콜, TCP/IP 4계층 (0) | 2024.07.29 |