전체 글

·CS/알고리즘
순열 : 순서를 고려하여 서로 다른 n개 중 r개 뽑기$$ nPr = \frac{n!}{(n-r)!} $$ 조합 : 순서를 고려하지 않고 서로 다른 n개 중 r 개 뽑기 $$ nCr = \frac{n!}{(n-r)!·r!} $$ 파이썬에서는 itertools 모듈을 이용하여 순열과 조합을 쉽게 구할 수도 있다. 인자로 뽑기를 할 리스트와 뽑을 개수를 넘겨주면 튜플 형태로 리스트에 담아서 반환해준다// 순열from itertools import permutationslst=[1,2,3,4]p_lst = permutations(lst, 2)for el in p_lst: print(el, end=' ') //결과//(1, 2) (1, 3) (1, 4) (2, 1) (2, 3) (2, 4) (3, 1..
1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개..
1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500) 출력 첫째 줄에 구한 0의 개수를 출력한다. 코드 import sys n = int(sys.stdin.readline()) sum = 1 ans = 0 if n==0: print(0) exit() for a in range(1, n+1): sum *= a sum_str = str(sum) for c in reversed(sum_str): if c == '0': ans+=1 else: bre..
딜레이레이
개발새발