프로그래머스는 알고리즘 입문에 아주 유용한 문제들을 제공한다. 필자는 프로그래머스 문제를 풀어보며 나와 다른사람의 답을 비교해보며 더욱 효율적이고, 파이써닉한 코드를 연습하려한다.
def solution(angle):
if angle<90:
result = 1
elif angle == 90:
result = 2
elif 180> angle >90:
result = 3
elif angle == 180:
result = 4
return result
def solution(angle):
answer = (angle // 90) * 2 + (angle % 90 > 0) * 1
return answer
조건을 효율적으로 단순화 시킴.
제한조건
0 < n < 1,000
n / 10 ≤ k < 1,000
서비스로 받은 음료수는 모두 마십니다.
def solution(n, k):
if n>=10 :
answer= 12000*n + 2000*(k-n//10)
else :
answer= 12000*n + 2000*k
return answer
def solution(n, k):
return n * 12000 + (k - n // 10) * 2000
조건을 효율적으로 단순화 시킴.
제한조건
0 < n <= 1,000
def solution(n):
a = 0
for i in range(2,n+1,2) :
a+= i
return a
def solution(n):
return sum([i for i in range(2, n + 1, 2)])
sum()함수를 이용해 파이써닉하게 값을 리턴함
제한조건
1 ≤ array의 길이 ≤ 100
0 ≤ array의 원소 ≤ 1,000
0 ≤ n ≤ 1,000
def solution(array, n):
return array.count(n)
def solution(array, n):
return array.count(n)
제한조건
0 ≤ numbers의 원소 ≤ 1,000
1 ≤ numbers의 길이 ≤ 100
정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.
def solution(numbers):
b=0
for i in numbers:
b+=i
return b/len(numbers)
//1
import numpy as np
def solution(numbers):
return np.mean(numbers)
//2
def solution(numbers):
return int(sum(numbers) / len(numbers) * 10) / 10
numpy.mean() : 배열의 평균을 구하는 함수