KATA#30

codataffee·2024년 5월 11일
0

CODEKATA

목록 보기
30/114
post-thumbnail

WHAT IS KATA?

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

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


- SQL


✔️ 문제 #1: Queries Quality and Percentage

✔️ 제출 쿼리

✔️ 쿼리 분석

# 테스트 케이스에는 query_name이 null값인 것이 없었는데,
# 제출하니 null값이 포함된 결과가 나와서 조건절에 IS NOT NULL 추가
SELECT query_name,
       ROUND(SUM(rating/`position`)/COUNT(query_name),2) quality,
       ROUND(AVG(rating<3)*100,2) poor_query_percentage
FROM Queries
WHERE query_name IS NOT NULL
GROUP BY query_name


✔️ 문제 #2: Monthly Transactions I

✔️ 제출 쿼리

✔️ 쿼리 분석

# IF 문을 오랜만에 써서 헷갈렸던 문제
SELECT DATE_FORMAT(trans_date, '%Y-%m') `month`, 
       country, 
       COUNT(*) trans_count, 
       SUM(IF(state = 'approved', 1, 0)) approved_count, 
       SUM(amount) trans_total_amount, 
       SUM(IF(state = 'approved', amount, 0)) approved_total_amount
FROM Transactions
GROUP BY DATE_FORMAT(trans_date, '%Y-%m'), country


- PYTHON


✔️ 문제 #1: K번째 수

✔️ 제출 코드

✔️ 코드 분석

def solution(array, commands):
    array1 = []
    for i,j,k in commands:
        array1.append(sorted(array[i-1:j])[k-1])
    return array1


✔️ 문제 #2: 두 개 뽑아서 더하기

✔️ 제출 코드

✔️ 코드 분석

def solution(numbers):
    answer1 = set()
    for i in range(len(numbers)):
        for j in range(i+1, len(numbers)):
            answer1.add(numbers[i] + numbers[j])
    answer = sorted(list(answer1))
    return answer


✔️ CHECK POINT

  • SQL
    • 새롭게 알진 않았지만 리마인드.
    • IF(조건, 조건을 충족할 때, 조건을 충족하지 못할 때)
  • PYTHON
    • 중복을 제거하는 필터로 set() 함수를 활용하는 법
    • set()

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

0개의 댓글

관련 채용 정보