KATA#49

codataffee·2024년 5월 31일
0

CODEKATA

목록 보기
49/114
post-thumbnail

WHAT IS KATA?

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

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


- SQL


✔️ 문제 #1: Group Sold Products By The Date

✔️ 제출 쿼리

✔️ 쿼리 분석

SELECT sell_date
     , COUNT(DISTINCT product) num_sold
     , GROUP_CONCAT(DISTINCT product ORDER BY product) products
FROM Activities
GROUP BY sell_date


- PYTHON


✔️ 문제 #1: 달리기 경주

✔️ 제출 코드

✔️ 코드 분석

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


✔️ CHECK POINT

  • SQL
    • 문자열을 합쳐주는 CONCAT() 함수는 알고 있었는데.
      그룹으로 묶인 그룹 내 값들을 합쳐주는 함수도 있었다!
      GROUP_CONCAT() 함수 - 참고
  • PYTHON
    • 딕셔너리를 조금 더 자유롭게 사용할 수 있게 되었다.
          # 선수들의 순위 정리 딕셔너리
          ranking = {}
          # 현재 순위 딕셔너리에 입력
          for i, name in enumerate(players):
              ranking.update({name : int(i)})
          ###
          # 딕셔너리 한 줄 코드로 생성하기
          ranking = {name : int(i) for i, name in enumerate(players)}

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

0개의 댓글

관련 채용 정보