KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.
이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.
✔️ 제출 쿼리
✔️ 쿼리 분석
SELECT HISTORY_ID,
CAR_ID,
DATE_FORMAT(START_DATE, '%Y-%m-%d') START_DATE,
DATE_FORMAT(END_DATE, '%Y-%m-%d')END_DATE,
CASE WHEN DATEDIFF(END_DATE, START_DATE) >= 29 THEN '장기 대여'
ELSE '단기 대여' END RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE DATE_FORMAT(START_DATE, '%Y-%m') = "2022-09"
ORDER BY 1 DESC
#DATEDIFF 계산 시 끝 날짜에서 시작 날짜 순서로 나열하고,
날짜의 차이에 +1을 해줘야 원하는 몇일차이? 가 나온다!
✔️ 제출 쿼리
✔️ 쿼리 분석
SELECT CAR_ID,
ROUND(AVG(DATEDIFF(END_DATE, START_DATE)+1), 1) AVERAGE_DURATION
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
HAVING ROUND(AVG(DATEDIFF(END_DATE, START_DATE)+1), 1) >= 7
ORDER BY 2 DESC, 1 DESC
#위 문제와 마찬가지로 DATEDIFF 계산 시 날짜가 하루 빠지는 점 확인하기!
✔️ 제출 쿼리
✔️ 쿼리 분석
SELECT P.ID,
P.NAME,
P.HOST_ID
FROM PLACES P INNER JOIN
(
SELECT ID AI,
NAME AN,
HOST_ID AHI
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(HOST_ID) >= 2
) A
ON P.HOST_ID = A.AHI
ORDER BY P.ID
✔️ 제출 코드
✔️ 코드 분석
def solution(n):
list = [str(i) for i in (str(n))]
list.sort()
list.reverse()
lists = ''.join(list)
return int(lists)
✔️ 제출 코드
✔️ 코드 분석
def solution(x):
word = str(x)
add = 0
for i in range(len(word)):
add += int(word[i])
if x % add == 0:
return True
else:
return False
✔️ 제출 코드
✔️ 코드 분석
def solution(a, b):
answer = 0
if a <= b:
for i in range(a,b+1):
answer += int(i)
elif a > b:
for i in range(b,a+1):
answer += int(i)
return answer
SQL
PYTHON