본문 바로가기
TIL

본 캠프 9일차 TIL

by Data 학습자 2024. 7. 2.

 

TIL: Python 자세한 나의 학습 내용 https://datalearn.tistory.com/43

 

본 캠프 Python 알고리즘 코드카타 9일차

오늘 풀어본 문제https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기

datalearn.tistory.com

 

문제 설명: 명함 지갑을 만드는 회사에서 모든 명함을 수납할 수 있는 가장 작은 지갑을 만들기 위해 명함의 가로 길이와 세로 길이를 조사했습니다. 주어진 명함 크기 배열 sizes를 통해 가장 작은 지갑 크기를 구하는 함수 solution을 작성하는 문제입니다.

문제 풀이 순서:

  1. 각각 가로와 세로의 최대 크기를 저장할 변수를 생성
  2. 명함의 가로와 세로 크기를 순회하며 최대 크기를 갱신
  3. 최종적으로 가장 큰 가로와 세로 크기를 곱하여 지갑의 크기를 구합니다.

구체적 구현:

def solution(sizes):
    max_w = 0
    max_h = 0
    
    for size in sizes:
        w, h = size
        if w < h:
            w, h = h, w
        
        if w > max_w:
            max_w = w
        if h > max_h:
            max_h = h
    
    answer = max_w * max_h
    return answer

 

오늘 배운 점:

  • 문제를 단계별로 접근하여 해결하는 방법을 복습 했습니다.

 

TIL: SQL 자세한 나 학습 내용 https://datalearn.tistory.com/44

 

본 캠프 9일차 SQL TIL

오늘 풀어본 문제https://school.programmers.co.kr/learn/courses/30/lessons/131530 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기

datalearn.tistory.com

 

문제 설명: PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL문을 작성하는 문제입니다. 가격대 정보는 각 구간의 최소금액으로 표시하고 결과는 가격대를 기준으로 오름차순 정렬해야 합니다.

 

문제 풀이 순서:

  1. 각 구간별로 값을 나누어 컬럼에 저장합니다.
  2. 서브 쿼리를 활용하여 각 금액 구간 별로 그룹화합니다.
  3. 그룹 간 중첩되는 가격 수를 셉니다.
  4. 마지막으로 작은 금액을 오름차순으로 정렬합니다.

구체적 구현:

SELECT PRICE_GROUP, COUNT(PRICE_GROUP)
FROM
(
SELECT 
CASE WHEN PRICE < 10000 THEN '0'
     WHEN PRICE < 20000 THEN '10000'
     WHEN PRICE < 30000 THEN '20000'
     WHEN PRICE < 40000 THEN '30000'
     WHEN PRICE < 50000 THEN '40000'
     WHEN PRICE < 60000 THEN '50000'
     WHEN PRICE < 70000 THEN '60000'
     WHEN PRICE < 80000 THEN '70000'
     WHEN PRICE < 90000 THEN '80000'
     WHEN PRICE < 100000 THEN '90000'
     END 'PRICE_GROUP'
FROM PRODUCT
) as P_G
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP;

 

대안 방법 (FLOOR 함수 사용):

SELECT 10000 * (FLOOR(price / 10000)) AS price_level, COUNT(*) AS product_count
FROM product
GROUP BY FLOOR(price / 10000)
ORDER BY price_level;
 

오늘 배운 점:

  • FLOOR 함수를 사용하여 조건문을 간단하게 작성하는 방법을 알게 되었습니다.
  • FLOOR 함수에 대한 이해도를 높일 필요가 있으며, 추가 학습 및 튜터분들과 매니저 님들께 질문을 통해 이를 더 깊이 이해할 예정입니다.

'TIL' 카테고리의 다른 글

본 캠프 11일차 TIL  (0) 2024.07.04
본 캠프 10일차 TIL  (0) 2024.07.03
본 캠프 8일차 TIL  (0) 2024.07.01
본 캠프 7일차 TIL 제출용  (0) 2024.06.30
본 캠프 6일차 TIL 제출용  (0) 2024.06.29