KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.
이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.
✔️ 제출 쿼리
✔️ 쿼리 분석
WITH MARCH AS
(
SELECT SALES_DATE,
PRODUCT_ID,
USER_ID,
SALES_AMOUNT
FROM ONLINE_SALE
UNION ALL
SELECT SALES_DATE,
PRODUCT_ID,
NULL USER_ID,
SALES_AMOUNT
FROM OFFLINE_SALE
)
SELECT DATE_FORMAT(SALES_DATE, "%Y-%m-%d") SALES_DATE,
PRODUCT_ID,
USER_ID,
SALES_AMOUNT
FROM MARCH
WHERE MONTH(SALES_DATE) = 3
ORDER BY 1, 2, 3
✔️ 제출 쿼리
✔️ 쿼리 분석
SELECT UB.TITLE,
UR.BOARD_ID,
UR.REPLY_ID,
UR.WRITER_ID,
UR.CONTENTS,
DATE_FORMAT(UR.CREATED_DATE,"%Y-%m-%d") CREATED_DATE
FROM USED_GOODS_BOARD UB JOIN USED_GOODS_REPLY UR
ON UB.BOARD_ID = UR.BOARD_ID
WHERE DATE_FORMAT(UB.CREATED_DATE,"%Y-%m") = "2022-10"
ORDER BY CREATED_DATE, UB.TITLE
✔️ 제출 쿼리
✔️ 쿼리 분석
WITH RECURSIVE TEST AS
(
SELECT 0 AS HOUR # 비재귀
UNION ALL
SELECT HOUR + 1 # 재귀
FROM TEST
WHERE HOUR < 23 # 재귀 정지 조건
)
SELECT T.HOUR HOUR,
COALESCE(A.`COUNT`,0) `COUNT`
FROM TEST T LEFT JOIN (
SELECT HOUR(DATETIME) HOUR,
COUNT(*) `COUNT`
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
) A
ON T.HOUR = A.HOUR
✔️ 제출 코드
✔️ 코드 분석
def solution(absolutes, signs):
answer = 0 # 0부터 시작하는 answer 변수 정의
for i, s in zip(absolutes, signs): # 변수 2개를 zip함수로 묶어 각각 부여하기
if s == True: # s (signs) 값이 True 일 경우
answer += i # i를 더한 값을 answer에 반영
else: # 그렇지 않을 경우(False)
answer -= i # i를 뺀 값을 answer에 반영
return answer
✔️ 제출 코드
✔️ 코드 분석
def solution(phone_number):
replace = '*' * (len(phone_number) - 4) # 맨 뒷 4자리만 필요하기 때문에
# phone_number의 길이에서 4를 뺀 값만큼 * 만들기
num = phone_number[-4:] # 슬라이싱으로 뒤에서부터 4개 가져오기
return replace + num # * 과 숫자 4개 합쳐서 반환
✔️ 제출 코드
✔️ 코드 분석
def solution(numbers):
sume = sum(i for i in range(0,10)) # 0부터 9까지 숫자의 합
sumn = sum(numbers) # numbers 숫자들의 합
answer = sume - sumn # 전체 합에서 numbers 숫자들의 합 빼기
return answer