KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.
이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.
- 결국 아래 예제를 보고 primary_flag 가 Y 인 department_id 에 속해있는
employee_id 와 employee_id 가 1개만 있는 데이터들을 뽑아보기로 했다.
✔️ 제출 쿼리
✔️ 쿼리 분석
# WHERE 조건절로 primary_flag 가 'Y' 인 데이터들과
# employee_id 가 1개인 (소속 부서가 1개) 데이터만 조회
SELECT employee_id,
department_id
FROM Employee
WHERE primary_flag = 'Y'
OR employee_id
IN (SELECT employee_id
FROM Employee
GROUP BY employee_id
HAVING COUNT(employee_id) = 1)
✔️ 제출 코드
1. 약수의 갯수를 atklist 리스트 변수에 넣고 해당 값을 limit와 비교해
power와 atklist의 값을 조건별로 더해 넣는 코드
시간초과로 실패..
✔️ 코드 분석
def atkpoint(number, limit, power):
atk = 0
for i in range(1, int(number**0.5) + 1):
if number % i == 0:
if i == number//i:
atk += 1
else:
atk += 2
if atk > limit:
return power
return atk
def solution(number, limit, power):
result = 1
for i in range(2, number + 1):
atknum = atkpoint(i, limit, power)
result += atknum
return result