프로그래머스 연습문제 기준으로 레벨 1부터 3까지 모두 푸는 것을 목표로 한다. 실패하지 않고 매일매일 꾸준히 하는 것이 목표. 중도에 포기하지 않도록 기록을 남기는걸로...ㅋㅋ;;
코딩테스트의 부진이 너무 심해서...
조금만 손 떼도 하나도 기억 안 남, 금붕어 아님?
끙끙거려도 무조건 혼자 푸는걸 목표로!!!
머리가 나빠 되게 조잡할 수도 있으니...
마음에 안 드시다면 더욱 효율적인 방법을 알려주세요~ㅎㅎ
저야 완전 감사합니다!!!! 귀하디 귀한 선배들의 조언!!!!
def solution(num):
answer = 'Odd'
if num%2 == 0:
answer = 'Even'
return answer
def solution(arr):
answer = 0
answer = sum(arr)/len(arr)
return answer
역시나 가장 먼저 떠올린건 무식하게 for문을 다 도는 방법.
이건 시간복잡도 O(N)으로 비효율적인데도 계속 생각하게 된다.
"임의의 자연수 N의 약수들 중에서 두 약수의 곱이 N이 되는 약수 A와 B는 반드시 존재한다" <이걸 머릿속에 쑤셔박아야 한다.
즉, 자연수 N의 제곱근 까지만 구하면 그 짝의 약수는 자동으로 구해짐.
제곱근까지 구하고, 그 if문 안에 i != N//i <이 if문을 한번 더.
앞뒤로 차례대로 구하기. 이 방법의 시간복잡도는 O(n^(1/2))
def solution(n):
answer = 0
for i in range(1,int(n**(1/2)+1)):
if n % i == 0:
answer += i
if i!= (n//i):
answer += (n//i)
return answer
나는 str로 바꾸는 방법부터 생각남. 거의 고정관념수준...
str>int>list>sum
def solution(n):
answer = 0
lst = list(map(int,str(n)))
answer = sum(lst)
return answer
난 슬라이싱이나 인덱싱 좋아함
def solution(n):
n = str(n)[::-1]
answer = list(map(int,str(n)))
return answer