KATA#14

codataffee·2024년 4월 23일
0

CODEKATA

목록 보기
14/114
post-thumbnail

WHAT IS KATA?

KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.

이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.


- SQL


✔️ 문제 #1: 식품분류별 가장 비싼 식품의 정보 조회하기

✔️ 제출 쿼리

✔️ 쿼리 분석

#CDEs 사용! 임시 테이블 생성 후 원래 테이블과 조인하는 방법에 대해 신경쓰기!

WITH MAXPRICE AS (
              SELECT CATEGORY,
                     MAX(PRICE) MP
              FROM FOOD_PRODUCT
              GROUP BY CATEGORY
              )
SELECT FP.CATEGORY,
       FP.PRICE MAX_PRICE,
       FP.PRODUCT_NAME
FROM FOOD_PRODUCT FP JOIN MAXPRICE MX
     ON FP.CATEGORY = MX.CATEGORY
     AND FP.PRICE = MX.MP
WHERE FP.CATEGORY IN('과자','국','김치','식용유')
ORDER BY FP.PRICE DESC


✔️ 문제 #2: 5월 식품들의 총매출 조회하기

✔️ 제출 쿼리

✔️ 쿼리 분석

SELECT FP.PRODUCT_ID,
       FP.PRODUCT_NAME,
       SUM(FP.PRICE*FO.AMOUNT) TOTAL_SALES  --- (총매출은 가격 * 수량)
FROM FOOD_PRODUCT FP JOIN FOOD_ORDER FO
     ON FP.PRODUCT_ID = FO.PRODUCT_ID
WHERE FO.PRODUCE_DATE LIKE '2022-05%'
GROUP BY FP.PRODUCT_ID
ORDER BY 3 DESC, 1


✔️ 문제 #3: 없어진 기록 찾기

✔️ 제출 쿼리

✔️ 쿼리 분석

SELECT O.ANIMAL_ID,
       O.NAME
FROM ANIMAL_OUTS O LEFT JOIN ANIMAL_INS I
     ON O.ANIMAL_ID = I.ANIMAL_ID
WHERE I.ANIMAL_ID IS NULL
ORDER BY 1


- PYTHON


✔️ 문제 #1: 짝수와 홀수

✔️ 제출 코드

✔️ 코드 분석

def solution(num):
    if (num%2 == 0):
         answer = 'Even' 
    else: answer = 'Odd'
    return answer


✔️ 문제 #2: 평균 구하기

✔️ 제출 코드

✔️ 코드 분석

def solution(arr):
    answer = sum(arr) / len(arr)
    return answer


✔️ 문제 #3: 자릿수 더하기

✔️ 제출 코드

✔️ 코드 분석

def solution(n):                 --- (solution 함수 정의, 변수 n)
    word = str(n)                --- (n을 문자열로 반환해 word라는 변수에 저장)
    add = 0                      --- (add라는 변수 생성, 0으로 초기화)
    for i in range(len(word)):   --- (for 반복문, word의 길이만큼 반복, 
                                      i는 0부터 word의 길이보다 하나 작은 숫자까지 변화)
        add += int(word[i])      --- (word의 i번째 문자를 정수로 변환, add에 더하기)
    return add                   --- (add 변수 값 반환, n의 각 자릿수를 더한 총합)


✔️ CHECK POINT

  • SQL
    1. 처음부터 CDEs를 생각해내어 테이블과 테이블을 조인하는 형태로
      원하는 데이터를 추출하는 데 성공했다.
  • PYTHON
    1. for 반복문에 문자의 길이를 i로 지정하여 문자의 길이만큼 반복할 수 있었다.
    2. add 라는 변수를 =0 으로 0으로 초기화 후
      += 로 i번째 문자를 정수로 변환한 값을 더할 수 있다는 것을 알게 되었다.

profile
커피 좋아하는 데이터 꿈나무

0개의 댓글

관련 채용 정보