KATA#44

codataffee·2024년 5월 26일
0

CODEKATA

목록 보기
44/114
post-thumbnail

WHAT IS KATA?

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

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


- SQL


✔️ 문제 #1: Friend Requests II: Who Has the Most Friends

✔️ 제출 쿼리

✔️ 쿼리 분석

WITH ra AS (
SELECT requester_id id
FROM RequestAccepted

UNION ALL

SELECT accepter_id id
FROM RequestAccepted
)

SELECT id,
       COUNT(id) num
FROM ra
GROUP BY id
ORDER BY num DESC
LIMIT 1


- PYTHON


✔️ 문제 #1: 둘만의 암호

✔️ 제출 코드

✔️ 코드 분석

def solution(s, skip, index):
    skipminus = sorted(set("abcdefghijklmnopqrstuvwxyz") - set(skip))
    skipminusnum = len(skipminus)
    result = ""
    for char in s:
        result += skipminus[(skipminus.index(char)+index) % skipminusnum]
    return result


✔️ CHECK POINT

  • SQL
    • 문제 접근을 열끼리 비교하는 것으로만 생각하다보니,
      행끼리 합쳐 갯수를 구하는 방식이 쉽게 떠오르지 않았다.
      문제를 다양한 시각으로 접근하는 습관 들이기.
  • PYTHON
    • 처음에는 당연히 ord(), chr() 함수를 사용해서 풀어야 할 문제인 줄 알았는데, 알파벳의 전체 문자열에 제거할 문자열을 차집합으로 빼서 인덱스화 해주고 문자열별로 인덱스를 새로 정렬해서 더한 값을 반환하는 방법으로 해결이 가능했다.
      고정관념을 버리고 문제를 다양한 방법으로 접근해야겠다.

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

0개의 댓글

관련 채용 정보