KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.
이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.
✔️ 제출 쿼리
✔️ 쿼리 분석
SELECT product_id
FROM Products
WHERE low_fats LIKE 'Y' AND
recyclable LIKE 'Y'
✔️ 제출 쿼리
✔️ 쿼리 분석
# null 값을 포함해서 같이 불러오는 문제였는데,
문제가 너무 쉬워서 다른 방식으로 제출했다.
# null 값 같이 조회하는 쿼리
SELECT name
FROM Customer
WHERE referee_id != '2' OR referee_id IS NULL
---
# CTEs 생성으로 null 값 0 처리 후 조회하는 쿼리
WITH A AS (SELECT id,
name,
COALESCE(referee_id, 0) referee_id
FROM Customer
)
SELECT name
FROM A
WHERE referee_id != '2'
✔️ 제출 쿼리
✔️ 쿼리 분석
SELECT name,
population,
area
FROM World
WHERE area >= 3000000 OR
population >= 25000000
✔️ 제출 쿼리
✔️ 쿼리 분석
SELECT DISTINCT author_id id
FROM Views
WHERE author_id = viewer_id
ORDER BY 1
✔️ 제출 코드
✔️ 코드 분석
def solution(a, b):
answer = 0
for a, b in zip(a, b):
answer += a*b
return answer
✔️ 제출 코드
✔️ 코드 분석
def solution(left, right):
list = [i for i in range(left,right + 1)]
answer = 0
for x in list :
list2 = [j for j in range(1,x+1) if x % j == 0]
#list2 반환 시 제일 작은 x의 약수 리스트만 반환..
#list2 의 갯수가 짝수이면 더하고 홀수이면 빼는 식을 넣어봤는데 통과됐다..
#x도 반복이 되어 list2가 변하는 게 맞나?
if len(list2) % 2 == 0:
answer += x
else:
answer -= x
return answer
✔️ 제출 코드
✔️ 코드 분석
def solution(s):
sl = sorted(s)
sl2 = sl[::-1]
return ''.join(sl2)
# 위 코드를 한 줄로 연결하자면, 아래와 같다.
def solution(s):
return ''.join((sorted(s)[::-1]))
파이썬에서 사전순으로 문자열들을 정렬하려면
sort()
를 사용,
원본 리스트를 변경하지 않고 정렬하려면sorted()
를 사용하면 된다.
a= ['abc', 'ghi', 'def'] a.sort() print(a) > ['abc', 'def', 'ghi']
- 문자열 자체를 정렬하기 위해서
.sort()
를 사용하게 되면, 오류가 발생한다.
string(문자열)의 경우 첫 글자의 주소값으로 참조를 하여,
str type에sort()
라는 메소드가 없기 때문이다.
(오류 메세지: str 에 sort 라는 속성이 없다.)s = "epdlxjRnaskan" s1 = s.sort()
sorted()
를 사용하여 문자열 자체의 정렬이 가능하다.
단, 리스트로 반환.s = "epdlxjRnaskan" s2 = sorted(s) print(s2)
sorted(s)
로 문자열을 정렬한 리스트를 만들고,
이를'구분자'.join
을 사용해 하나의 이어진 문자열로 반환하면 된다.