KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.
이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.
✔️ 제출 쿼리
✔️ 쿼리 분석
SELECT class
FROM Courses
GROUP BY class
HAVING COUNT(class) >= 5
✔️ 제출 쿼리
✔️ 쿼리 분석
SELECT user_id,
COUNT(follower_id) followers_count
FROM Followers
GROUP BY user_id
ORDER BY 1
✔️ 제출 코드
✔️ 코드 분석
def solution(cards1, cards2, goal):
for i in goal:
if cards1 and i == cards1[0]:
del cards1[0]
# goal의 현재 요소 i 가 cards1의 첫 번째 요소와 같은 경우,
# cards1의 첫 번째 요소를 삭제
elif cards2 and i == cards2[0]:
del cards2[0]
# goal의 현재 요소 i 가 cards2의 첫 번째 요소와 같은 경우,
# cards2의 첫 번째 요소를 삭제
else:
return "No"
# goal 리스트의 모든 요소가 cards 1, 2 에 없으면,
# "No" 반환
return "Yes"
# goal 리스트의 모든 요소가 조건을 만족하면, "Yes" 반환
✔️ 제출 코드
✔️ 코드 분석
def solution(k, m, score):
answer = 0
score.sort(reverse = True)
# 점수 목록을 내림차순으로 정렬
for i in range(len(score)//m):
# score 리스트를 m의 크기만큼의 그룹으로 나누어 반복
box = score[m * i : m * (i + 1)]
# score 리스트를 m의 크기에 따라 그룹화 = box 세트화
answer += box[-1] * m
# 각 box의 마지막 요소(box[-1])에 m을 곱하여 answer에 더하기
# 각 box에서 가장 낮은 점수를 상자당 사과의 갯수(m)만큼 곱한다는 의미
# (최저 사과 점수) x (한 상자에 담긴 사과 개수) x (상자의 개수:반복)
return answer
box = score[m * i : m * (i + 1)]
: