KATA#66

codataffee·2024년 6월 18일
0

CODEKATA

목록 보기
66/114
post-thumbnail

WHAT IS KATA?

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

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


- SQL


✔️ 문제 #1: The Blunder

✔️ 제출 쿼리

✔️ 쿼리 분석

SELECT CEIL(AVG(SALARY) - AVG(REPLACE(SALARY, 0, '')))
FROM EMPLOYEES


- PYTHON


✔️ 문제 #1: 피로도

✔️ 제출 코드

✔️ 코드 분석

from itertools import permutations # itertools 모듈에서 permutations 함수를 임포트

def solution(k, dungeons):
    max_dungeons = 0  # 최대 탐험 가능한 던전 수를 저장할 변수 초기화
    
    # 모든 던전의 순열을 생성하여 탐색
    for p in permutations(dungeons):
        current_k = k       # 현재 피로도를 주어진 k로 초기화
        count_dungeons = 0  # 탐험한 던전 수를 저장할 변수 초기화

        # 각 순열에 대해 던전을 탐험
        for min_k, consume_k in p:
            if current_k >= min_k:      # 현재 피로도가 최소 필요 피로도 이상인지 확인
                current_k -= consume_k  # 탐험 후 피로도 감소
                count_dungeons += 1     # 탐험한 던전 수 증가
            else:
                break  # 현재 피로도가 부족하면 탐험 중단
                
        # 최대 탐험할 수 있는 던전 수 갱신
        max_dungeons = max(max_dungeons, count_dungeons)
        
    # 최대 탐험할 수 있는 던전 수 반환
    return max_dungeons


✔️ CHECK POINT

  • SQL

    • REPLACE('컬럼', '기존 문자', '바꿀 문자')
      키보드의 0이 고장난 줄 모르고 계산을 끝낸 SAMANTHA의 평균값과
      원래의 평균값의 차이를 정수로 구하는 문제
      # 모든 0을 공백으로 변환
      SELECT CEIL(AVG(SALARY) - AVG(REPLACE(SALARY, 0, '')))
      FROM EMPLOYEES
  • PYTHON

    • 순열 :
      주어진 여러 개의 항목들을 순서 있게 배열하는 모든 가능한 경우
      예를 들어, 세 개의 항목 [A, B, C]가 있다면,
      이 항목들의 순열은 [A, B, C], [A, C, B], [B, A, C], [B, C, A], [C, A, B], [C, B, A] 총 6가지가 된다.

    • PERMUTATIONS 함수는 배열을 순열로 반환해준다.

      # itertools 모듈에서 permutations 함수 임포트
      from itertools import permutations 
      
      def solution(k, dungeons):
          max_dungeons = 0  # 최대 탐험 가능한 던전 수를 저장할 변수 초기화
       
          # 모든 던전의 순열을 생성하여 탐색
          for p in permutations(dungeons):
              current_k = k       # 현재 피로도를 주어진 k로 초기화
              count_dungeons = 0  # 탐험한 던전 수를 저장할 변수 초기화
      
              # 각 순열에 대해 던전을 탐험
              for min_k, consume_k in p:
                  if current_k >= min_k:      # 현재 피로도가 최소 필요 피로도 이상인지 확인
                      current_k -= consume_k  # 탐험 후 피로도 감소
                      count_dungeons += 1     # 탐험한 던전 수 증가
                  else:
                      break  # 현재 피로도가 부족하면 탐험 중단
                   
              # 최대 탐험할 수 있는 던전 수 갱신
              max_dungeons = max(max_dungeons, count_dungeons)
           
          # 최대 탐험할 수 있는 던전 수 반환
          return max_dungeons

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

0개의 댓글

관련 채용 정보