본문 바로가기

알고리즘/백준

(45)
[Python] 백준 파이썬 15649 N과 M (1) https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 참고 블로그 https://jiwon-coding.tistory.com/m/21 [백준] 15649번 N과 M(1) / 파이썬(python) # 문제 링크 www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 jiwon-codin..
[Python] 백준 파이썬 2004 조합 0의 개수 https://www.acmicpc.net/problem/2004 2004번: 조합 0의 개수 첫째 줄에 정수 $n$, $m$ ($0 \le m \le n \le 2,000,000,000$, $n \ne 0$)이 들어온다. www.acmicpc.net 첫 번째 풀이 # 백준 2004 조합 0의 개수 import math import sys n, m = map(int, sys.stdin.readline().split()) comb = list(str(math.comb(n, m))) zero_cnt = 0 for i in range(1, len(comb)+1): if comb[-i] == '0': zero_cnt += 1 else: print(zero_cnt) break 이 전에 푼 팩토리얼 0의 개수랑 비..
[Python] 백준 파이썬 1676 팩토리얼 0의 개수 https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net # 백준 1676 팩토리얼 0의 개수 import math as m n = int(input()) # math.factorial(.) 함수를 이용해서 값을 구해줌 n_fac = m.factorial(n) # 구한 수의 각 자릴수로 리스트를 만들어줌 sep_n = list(str(n_fac)) # 0의 개수 체크 zero_cnt = 0 # 1의 자리부터 -> 리스트에서 제일 뒤쪽부터 -> 리스트의 인덱스 -1부터 -(리스트 길이) 까지 반복하며 체크 for i in range(1, l..
[Python] 백준 파이썬 9375 패션왕 신해빈 https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net # 백준 9375 패션왕 신해빈 t = int(input()) for _ in range(t): # 나중에 정답으로 출력할 변수 정의 ans = 1 n = int(input()) # 옷이 없으면 입을수가 없으니 0 if n == 0: print(0) else: # 옷들의 종류(type)만 저장해줌. typ..
[Python] 백준 파이썬 1010 다리 놓기 https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net # 백준 1010 다리놓기 import math t = int(input()) for _ in range(t): n, m = map(int, input().split()) # 오른쪽 m개 중에서 n개 고르기 bridge = math.comb(m, n) print(bridge)
[Python] 백준 파이썬 11051 이항 계수 2 https://www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net # 백준 파이썬 11051 이항 계수 2 import math n, k = map(int, input().split()) ans = math.comb(n, k) ans %= 10007 print(ans)
[Python] 백준 파이썬 11050 이항 계수 1 https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net # 백준 11050 이항 계수 1 import math n, k = map(int, input().split()) print(math.comb(n,k)) python에는 math.comb() 라는 아주 좋은 함수가 있습니다. 😀
[Python] 백준 파이썬 3036 링 https://www.acmicpc.net/problem/3036 3036번: 링 출력은 총 N-1줄을 해야 한다. 첫 번째 링을 제외한 각각의 링에 대해서, 첫 번째 링을 한 바퀴 돌리면 그 링은 몇 바퀴 도는지 기약 분수 형태 A/B로 출력한다. www.acmicpc.net # 백준 3036 링 import math n = int(input()) ring_r = list(map(int, input().split())) ring_1 = ring_r[0] for i in range(1, len(ring_r)): r_gcd = math.gcd(ring_1, ring_r[i]) A = ring_1 // r_gcd B = ring_r[i] // r_gcd print(f'{A}/{B}') 분수를 약분 한다는 것..