KATA#55

codataffee·2024년 6월 6일
0

CODEKATA

목록 보기
55/114
post-thumbnail

WHAT IS KATA?

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

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


- SQL


✔️ 문제 #1: Weather Observation Station 7

✔️ 제출 쿼리

✔️ 쿼리 분석

SELECT DISTINCT CITY
FROM STATION
WHERE CITY LIKE '%a'
             OR CITY LIKE '%e'
             OR CITY LIKE '%i'
             OR CITY LIKE '%o'
             OR CITY LIKE '%u'


✔️ 문제 #2: Weather Observation Station 8

✔️ 제출 쿼리

✔️ 쿼리 분석

# 정규표현식 사용
# [] (괄호 안 문자 비교)
# ^ (시작 문자)
# $ (끝 문자)
# . (모든 문자)
SELECT DISTINCT CITY 
FROM STATION 
WHERE LOWER(CITY) REGEXP '^[aeiou].*[aeiou]$'; 


✔️ 문제 #3: Weather Observation Station 9

✔️ 제출 쿼리

✔️ 쿼리 분석

SELECT DISTINCT CITY
FROM STATION
WHERE CITY NOT LIKE 'A%'
             AND CITY NOT LIKE 'E%'
             AND CITY NOT LIKE 'I%'
             AND CITY NOT LIKE 'O%'
             AND CITY NOT LIKE 'U%'


- PYTHON


✔️ 문제 #1: 이진 변환 반복하기

✔️ 제출 코드

✔️ 코드 분석

def solution(s):
    # 제거된 0의 갯수
    zero = 0
    # 이진변환 횟수
    binary = 0
    # s가 1이 될 때까지 반복
    while s != "1":
        # 현재 문자열의 길이
        length_s = len(s)
        # 0을 모두 제거한 문자열
        s = s.replace('0', '')
        # 제거된 0의 개수
        del_zero = length_s - len(s)
        zero += del_zero
        # 길이를 이진법으로 변환한 문자열로 변경
        s = bin(len(s))[2:]
        # 이진 변환 횟수 증가
        binary += 1
    
    return [binary, zero]


✔️ CHECK POINT

  • SQL

    • 정규표현식 REGEXP
      *모음으로 시작하고 끝나는 문자열 조회하기
      # [] (괄호 안 문자 비교)
      # ^ (시작 문자)
      # $ (끝 문자)
      # . (모든 문자)
      SELECT DISTINCT CITY 
      FROM STATION 
      WHERE LOWER(CITY) REGEXP '^[aeiou].*[aeiou]$'; 
  • PYTHON

    • .replace('변환 전 문자', '변환 후 문자')
      0 을 모두 제거한 문자열
      s = s.replace('0', '')
    • bin(n) : 정수 n을 이진수로 변환하는 파이썬 내장 함수
      bin(3)0b11을 반환하는데, 0b는 이진수임을 나타내는 접두사로 필요 없을 시 제거 또는 슬라이싱으로 조회해야 한다.
      길이를 이진법으로 변환한 문자열로 변경
      s = bin(len(s))[2:]

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

0개의 댓글

관련 채용 정보