코딩테스트 연습 - 소인수분해 | 프로그래머스 스쿨 (programmers.co.kr)
문제 설명
소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
입출력 예
n | result |
12 | [2, 3] |
17 | [17] |
420 | [2, 3, 5, 7] |
풀이
def solution(n):
num=[]
result=[]
i=2
while i<=n:
if n%i==0:
num.append(i)
n=n//i
else:
i+=1
for i in num:
if i not in result:
result.append(i)
return result
코딩테스트 연습 - 구슬을 나누는 경우의 수 | 프로그래머스 스쿨 (programmers.co.kr)
내 풀이 (정답)
def solution(balls, share):
bm=1
bj1=1
bj2=1
for i in range(1, balls+1):
bm*=i
for j in range(1, (balls-share)+1):
bj1*=j
for h in range(1, share+1):
bj2*=h
return bm/(bj1*bj2)
풀이
1. ( 내 풀이를 팩토리얼 함수를 만들어 정리)
def solution(balls, share):
answer = factorial(balls) / (factorial(balls - share) * factorial(share))
return answer
def factorial(n):
result = 1
for i in range(1, n + 1):
result = result * i
return result
2. 조합 함수 사용
import math
def solution(balls, share):
return math.comb(balls, share)
ex)
로또의 경우의 수는 45개에서 6개를 뽑는 것이므로
from math import comb
print(comb(45,6))
코딩테스트 연습 - 컨트롤 제트 | 프로그래머스 스쿨 (programmers.co.kr)
문제 설명
숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요.
입출력 예
s | result |
"1 2 Z 3" | 4 |
"10 20 30 40" | 100 |
"10 Z 20 Z 1" | 1 |
"10 Z 20 Z" | 0 |
"-1 -2 -3 Z" | -3 |
내 풀이
.
풀이
def solution(s):
answer=0
num=s.split()
for i in range(len(num)):
if num[i] !="Z":
answer+= int(num[i])
else:
answer-= int(num[i-1])
return answer
'코딩테스트 > programmers (python)' 카테고리의 다른 글
python/ Lv.0 저주의 숫자 3 (0) | 2023.01.21 |
---|---|
python/ Lv.0 캐릭터의 좌표, 로그인 성공?, 등수 매기기 (0) | 2023.01.20 |
python/ Lv.0 숨어있는 숫자의 덧셈 (2), 이진수 더하기, 7의 개수, 공 던지기, 영어는 싫어 (0) | 2023.01.17 |
python/ Lv.0 가까운 수, K의 개수★, 진료순서 정하기 ★★ (0) | 2023.01.15 |
★★★python/ Lv.0 중복된 문자 제거, 팩토리얼, 모스부호, 2차원으로 만들기 (0) | 2023.01.14 |