KATA#36

codataffee·2024년 5월 18일
0

CODEKATA

목록 보기
36/114
post-thumbnail

WHAT IS KATA?

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

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


- SQL


✔️ 문제 #1: The Number of Employees Which Report to Each Employee

✔️ 제출 쿼리

✔️ 쿼리 분석

WITH reporter AS (
SELECT reports_to rt,
       COUNT(reports_to) reports_count,
       ROUND(AVG(age)) ag
FROM Employees
GROUP BY reports_to
HAVING reports_to IS NOT NULL
)

SELECT e.employee_id,
       e.name,
       r.reports_count,
       r.ag average_age
FROM Employees e RIGHT JOIN reporter r
     ON e.employee_id = r.rt
ORDER BY 1


- PYTHON


✔️ 문제 #1: 덧칠하기


✔️ 제출 코드

✔️ 코드 분석

def solution(n, m, section):
    # 페인트칠 횟수, 첫 구간은 페인트칠을 해야하므로 1로 시작
    result = 1
    # 페인트칠 position을 section[0]으로 시작
    position = section[0]
    # 현재 section을 position에서 롤러의 길이(m)를 빼고
    # 비교하여 롤러로 페인트칠 가능한지 확인
    for i in section:
        # 현재 position이 롤러로 페인트칠할 수 없다면 
        # position을 현재 구간(i)으로 업데이트
        if position + (m - 1) < i:
            position = i
            # 페인트칠 횟수 증가
            result += 1
    return result


✔️ CHECK POINT

  • 문제를 읽고 이해하는 데 시간이 더 오래 걸리는 듯..ㅋㅋㅋ

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

0개의 댓글

관련 채용 정보