[백준/30993/파이썬] 자동차 주차
30993번: 자동차 주차
첫 번째 줄에 양의 정수 $N$, $A$, $B$, $C$가 공백으로 구분되어 주어진다.
www.acmicpc.net
자동차 주차
1 초 | 1024 MB | 413 | 307 | 294 | 80.992% |
문제
같은 차종의 빨간색 자동차 B대, 파란색 자동차 C대를 N칸의 주차장에 1 대씩 주차하려고 한다.
대, 초록색 자동차모든 자동차를 한 칸에 한 대씩 주차할 수 있는 경우의 수를 구하라.
입력
첫 번째 줄에 양의 정수 N,A,B,C 가 공백으로 구분되어 주어진다.
출력
첫 번째 줄에 정답을 출력한다.
코드
- 팩토리얼 문제이다. N! / (A! * B! * C!) 이렇게 풀면 된다.
from sys import stdin
def p(t):
if (t<=1):
return 1
else:
return t *p(t-1)
n,a,b,c = map(int,stdin.readline().split())
print(p(n)//(p(a)*p(b)*p(c)))
- 팩토리얼 코드는
1. 팩토리얼 함수(p)를 만들었다. p(n)에 n 값에 따라 결과가 달라진다.
2. 만약 n<=1이면, 1을 반환한다.
3. N<=1이 아니라면, n*p(n-1)를 반환한다.
4. 만약 n = 5 인 경우,
5*p(4) -> 5*4*p(3) -> 5*4*3*p(2) -> 5*4*3*2*p(1) -> p가 1이므로 1을 반환하므로
결괏값이 나온다.
더 자세한 풀이는, [백준/Baekjoon] [C언어] 10872.. : 네이버블로그 (naver.com) 여기 참고! (옛날에 쓴 글)
'코딩테스트 > 파이썬' 카테고리의 다른 글
[프로그래머스/파이썬] 더 맵게 풀이 (Python, heap, heapq, heapify, heappush, heappop, 최소힙) (0) | 2025.02.21 |
---|---|
[프로그래머스/파이썬] 가장 큰 수 풀이 (Python, sort) (0) | 2025.02.20 |
[백준/14503/파이썬] 로봇 청소기 (Python,구현) (2) | 2023.04.13 |
[백준/2468/파이썬] 안전 영역 (Python, dfs) (0) | 2023.03.17 |
[백준/24483/파이썬] 알고리즘 수업 - 깊이 우선 탐색 5 (dfs,Python) (0) | 2023.03.15 |
댓글