(11번) 짝수와 홀수 구하기
def solution(num):
answer = ''
if num%2 == 0 :
answer = 'Even'
else :
answer = 'Odd'
return answer
def solution(num):
return "Even" if num%2==0 else "Odd"
# even을 출력해라 만약 나머지가 0이라면 / 아니면 odd를 출력해라
> 창의적인 답 : True ( 1 ) , False ( 0 )을 활용
def solution(num):
if num%2:
return "Odd"
return "Even"
(12번) 평균 구하기
def solution(arr):
answer = 0
n = len(arr)
for i in arr :
answer += i
n += 1
answer = answer / n
return answer
> list가 null인 경우도 고려 👏
def average(list):
if len(list) == 0:
return 0
else:
return sum(list) / len(list)
# 아래는 테스트로 출력해 보기 위한 코드입니다.
list = [5,3,4]
print("평균값 : {}".format(average(list)));
(13번) 자릿수 더하기
def solution(n):
answer = 0
for i in str(n) :
answer += int(i)
return answer
-----------
# 한 줄로 표현
def solution(n):
return sum([int(i) for i in str(n)])
print("결과 : {}".format(solution(n)));
> 재귀함수를 활용.. 👏👏
def sum_digit(number):
if number < 10:
return number
else:
return (number % 10) + (sum_digit(number // 10))
# 1의 자리, 2의자리, > > > n의 자리
(14번) 약수의 합
def solution(n):
answer = 0
for i in range(1,n+1) :
if n % i == 0 :
answer += i
return answer
# 한 줄로 표현
def solution(n):
return sum([answer for i in range(1,n+1) if n%i ==0])
> 조금 더 파고들면
def sumDivisor(num):
# num / 2 의 수들만 검사하면 성능 약 2배 향상
return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0])
# num/2를 넘는 수로 num을 나눌 수 없다는 점을 활용
(15번) 나머지가 1이 되는 값 찾기
def solution(n):
answer = 0
for i in range(1,1+n) :
if n%i == 1 :
answer = i
break
return answer
> 리스트 활용
def solution(n):
return [x for x in range(1,n+1) if n%x==1][0]
# 또는
def solution(n):
answer = min([x for x in range(1, n+1) if n % x == 1])
return answer
> 창의적인 방법
def solution(n):
answer = 0
for divisior in range(2, (n-1//2) +1) : #2부터~반값까지
if (n-1) % divisior == 0: #약수가 있다면
answer = divisior
break #탈출
else:
answer = n-1 #약수가 없다면 본인
return answer
> 성능향상을 위해서 해당 값의 반을 쪼개서 계산하는 방식들에 대해서 한 수 배울 수 있었다. 아직 활용은 무리지만 이렇게 계속 접함으로써 나중에 활용해보려고 한다.
'[스파르타코딩클럽]데이터분석 과정 > PYTHON' 카테고리의 다른 글
[Python] 점프 투 파이썬 (복습 차원) (0) | 2024.01.08 |
---|---|
[Python 코드카타] 21 ~ 25번 프로그래머스 (2) | 2024.01.08 |
[Python 코드카타] 16~20번 (프로그래머스) (1) | 2024.01.07 |
[Python 코드카타] 6~10번 (프로그래머스)_(1~5번 다시풀기) (1) | 2024.01.05 |
[Python 코드카타] 1 ~ 5번 (프로그래머스) (0) | 2024.01.04 |