KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.
이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.
✔️ 제출 쿼리
✔️ 쿼리 분석
SELECT user_id
, CONCAT(UPPER(LEFT(name,1)), LOWER(RIGHT(name,LENGTH(name)-1))) name
FROM Users
ORDER BY user_id
✔️ 제출 쿼리
✔️ 쿼리 분석
SELECT patient_id
, patient_name
, conditions
FROM Patients
WHERE conditions LIKE '% DIAB1%'
OR conditions LIKE 'DIAB1%'
✔️ 제출 코드
✔️ 코드 분석
def solution(ingredient):
# 햄버거 포장 순서 리스트
hamburger = [1,2,3,1]
# 쌓인 재료 리스트
stack = []
answer = 0
# ingredient 순서대로 stack에 리스트화
for i in ingredient:
stack.append(i)
# stack 에 하나씩 쌓여가는동안 뒤에서부터 4개의 숫자가
# 햄버거의 포장 순서 리스트와 동일하다면
if stack[-4:] == hamburger:
# 해당 stack 지우고 포장된 햄버거 수(answer) 1개 추가
del stack[-4:]
answer += 1
return answer
✔️ 제출 코드
✔️ 코드 분석
def solution(survey, choices):
# 성격 유형 검사 점수
survey_score = {
"R" : 0,
"T" : 0,
"C" : 0,
"F" : 0,
"J" : 0,
"M" : 0,
"A" : 0,
"N" : 0
}
# 성격 유형 선택한 점수
choice = {
1 : 3,
2 : 2,
3 : 1,
4 : 0,
5 : 1,
6 : 2,
7 : 3
}
# 결과 담을 변수
result = ""
# survey 문자열과 choices 선택지 리스트 zip 함수로
# type과 point로 불러와 반복
for type, point in zip(survey, choices):
# 선택지가 4를 기준으로 작거나 큰 경우에 따라
# type 문자열의 앞(왼쪽), 뒤(오른쪽)으로 나누어 점수 추가
if point < 4:
survey_score[type[0]] += choice[point]
elif point >= 5:
survey_score[type[1]] += choice[point]
# 성격 유형 검사 점수에 반영된 각 지표별 점수를 키값으로 리스트화
# 예: {'R': 0, 'T': 3, 'C': 1, 'F': 0, 'J': 0, 'M': 2, 'A': 1, 'N': 1}
survey_keys = list(survey_score.keys())
# l에 survey_keys 리스트 값 중 첫번째부터 2개씩 건너 뛰면서 반복
# r에 survey_keys 리스트 값 중 두번째부터 2개씩 건너 뛰면서 반복
# 각 성격 유형 지표별로 값을 비교
for l, r in zip(survey_keys[::2], survey_keys[1::2]):
if survey_score[l] >= survey_score[r]:
result += l
elif survey_score[l] < survey_score[r]:
result += r
return result
LEFT
RIGHT
함수와 CONCAT
으로 합쳐 원하는대로 만들어내는 과정,