python/ Lv.0 소인수분해, 구슬을 나누는 경우의 수, 컨트롤 제트

2023. 1. 17. 01:15·코딩테스트/programmers (python)

코딩테스트 연습 - 소인수분해 | 프로그래머스 스쿨 (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
'코딩테스트/programmers (python)' 카테고리의 다른 글
  • python/ Lv.0 저주의 숫자 3
  • python/ Lv.0 캐릭터의 좌표, 로그인 성공?, 등수 매기기
  • python/ Lv.0 숨어있는 숫자의 덧셈 (2), 이진수 더하기, 7의 개수, 공 던지기, 영어는 싫어
  • python/ Lv.0 가까운 수, K의 개수★, 진료순서 정하기 ★★
seulll
seulll
개인 공부 / 정리 블로그입니다 https://github.com/seul1009
  • seulll
    seulll
    seulll
  • 전체
    오늘
    어제
    • 분류 전체보기 (345) N
      • 코딩테스트 (237) N
        • programmers (python) (158) N
        • 백준 (python) (77) N
      • 자료구조 | 알고리즘 (14)
      • 개발 | 프로젝트 (43)
        • Python (4)
        • Java | Spring (7)
        • Android (5)
        • Unity (3)
        • API (4)
      • CS (15)
        • Network (5)
        • SQL (2)
        • OS (4)
      • 데이터 분석 (14)
      • 기타 (13)
  • 블로그 메뉴

    • 홈
    • 태그
    • 글쓰기
    • 설정
  • 링크

    • GitHub
  • 인기 글

  • 태그

    박스플롯
    API
    프로그래머스
    오차행렬
    파이썬
    2 x n 타일링
    solving environment
    데이터분석
    asterisk
    카카오맵 api
    그리디 알고리즘
    바다코끼리
    야근 지수
    confusion matrix
    백엔드
    티스토리챌린지
    백엔드 개발자
    train_test_split
    오블완
    코딩테스트
    웹크롤링
    프렌즈4블록
    대입 표현식
    백엔드 개발자 역량
    Python
    카카오맵
    kakao map api
    Boxplot
    모델 성능 평가
    Greedy
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
seulll
python/ Lv.0 소인수분해, 구슬을 나누는 경우의 수, 컨트롤 제트
상단으로

티스토리툴바