토요일에 카카오코테가 있는데 기초 다질 겸 감 잃지 않게 하려고 풀어본 문제들!
짜잘짜잘한 파이썬 기본 문법들만 다룬 문제들이다. 정답률 85%가 넘는 Lv.1 문제 모음💻
def solution(num):
answer = ''
if num % 2 == 0:
answer = 'Even'
else:
answer = 'Odd'
return answer
def solution(arr):
answer = 0
answer = sum(arr)/len(arr)
return answer
def solution(n):
result = []
for i in range(1, n+1):
if n % i == 0:
result.append(i)
answer = sum(result)
return answer
def sumDivisor(num):
# num / 2 의 수들만 검사하면 성능 약 2배 향상
return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0])
어차피 약수들은 대칭이니까 ( 8 = 2*4 = 4*2
이런식으로) 절반까지만 확인해줘도 된다..
반 넘는 값들은 필요가없음!
마찬가지로 num**(0.5)+1
도 동일하다. 저번에 소수찾기 문제에서 얻었던 지식..제곱근까지만 확인해주면 약수를 다 찾을 수 있다!
import math
def solution(n):
answer = 0
if n % math.sqrt(n) == 0:
m = math.sqrt(n)
answer = (m+1) ** (2)
else:
answer = -1
return answer
내 풀이는 해당 정수 n
이 제곱근 math.sqrt(n)
으로 나누어 떨어지면 math.sqrt(n)
가 그 정수의 제곱근이니까 +1
해서 제곱하는 값 리턴
def solution(n):
answer = 0
new = [int(num) for num in list(str(n))]
answer = sum(new)
return answer
str
변환해서 하나씩 넣어준걸 다시 int
로 변환해서 sum
하기
return sum([int(i) for i in str(number)])
이런 한 줄 풀이도 있더라.
def solution(s):
if s.lower().count('p') == s.lower().count('y'):
return True
else:
return False
return s.lower().count('p') == s.lower().count('y')
걍 이렇게 한줄로도 나타낼 수 있음.
def solution(n):
answer = ''
nums = [int(i) for i in list(str(n))]
nums.sort(reverse = True)
for num in nums:
answer += str(num)
return int(answer)
def solution(n):
ls = list(str(n))
ls.sort(reverse = True)
return int("".join(ls))
.join
을 쓰면 코드가 훨 간결해진다..! for
문을 쓸 필요가 없음.
[프로그래머스] Lv.1 x만큼 간격이 있는 n개의 숫자
def solution(x, n):
answer = []
for i in range(1, n+1):
answer.append(i*x)
return answer