KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.
이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.
✔️ 제출 쿼리
✔️ 쿼리 분석
SELECT sell_date
, COUNT(DISTINCT product) num_sold
, GROUP_CONCAT(DISTINCT product ORDER BY product) products
FROM Activities
GROUP BY sell_date
✔️ 제출 코드
✔️ 코드 분석
def solution(players, callings):
# 선수들의 순위 정리 딕셔너리
ranking = {}
# 현재 순위 딕셔너리에 입력
for i, name in enumerate(players):
ranking.update({name : int(i)})
# 이름이 불리면 순위 1 감소, 기존 위치 선수 순위 1 증가
for new in callings:
current_rank = ranking[new]
ranking[new] -= 1
ranking[players[current_rank - 1]] += 1
# 이름이 불린 선수와 기존 선수 위치 변경
players[current_rank - 1], players[current_rank] = new, players[current_rank - 1]
# 플레이어 배열 반환
return players
CONCAT()
함수는 알고 있었는데.GROUP_CONCAT()
함수 - 참고 # 선수들의 순위 정리 딕셔너리
ranking = {}
# 현재 순위 딕셔너리에 입력
for i, name in enumerate(players):
ranking.update({name : int(i)})
###
# 딕셔너리 한 줄 코드로 생성하기
ranking = {name : int(i) for i, name in enumerate(players)}