[백준] 1095번 파이썬 - 마법의 구슬
s+f개의 구슬 중 s개를 뽑는 조합의 개수를 구하고그 개수를 m이하의 사람들에게 모두 같은 개수로 나누어 주면 되는데이 때 m의 값이 최대여야 한다.첫 번째 코드# 1,000,000,000범위 -> 시간복잡도 O(N)import maths,f,m = map(int,input().split())answer = -1# 1. s+f개로 만들 수 있는 조합의 개수 구하기 -> math.comb 시간복잡도 O(logn)combs = math.comb(s+f,s)# 2. m 이하의 사람들이 모두 같은 개수의 조합을 테스트 할 수 있도록 나누기if combs 시간초과 두 번째 코드# 1,000,000,000범위 -> 시간복잡도 O(N)import sysimport mathinput = sys.stdin.readl..
2024. 5. 10.
[백준] 24092번 파이썬 - 퀵 정렬 3
2 5 1 4 3(i=1, j=2) -> 2 5 1 4 3(i=1, j=3, A[2]와 A[3]이 교환됨) -> 2 1 5 4 3(i=2, j=4) -> 2 1 5 4 3(i=2, j=5, A[3]과 A[5]가 교환됨) -> 2 1 3 4 5(i=0, j=1) -> 2 1 3 4 5(i=0, j=2, A[1]" data-og-host="www.acmicpc.net" data-og-source-url="https://www.acmicpc.net/problem/24092" data-og-url="https://www.acmicpc.net/problem/24092" data-og-image=""> 24092번: 알고리즘 수업 - 퀵 정렬 32 5 1 4 3(i=0, j=1, A[1]과 A[1]이 교환됨) ->..
2024. 4. 4.
[백준] 24090번 파이썬 - 퀵 정렬 1
2 5 1 4 3(i=1, j=2) -> 2 5 1 4 3(i=1, j=3, A[2]와 A[3]이 교환됨) -> 2 1 5 4 3(i=2, j=4) -> 2 1 5 4 3(i=2, j=5, A[3]과 A[5]가 교환됨) -> 2 1 3 4 5(i=0, j=1) -> 2 1 3 4 5(i=0, j=2, A[1]과 A[2]가" data-og-title="24090번: 알고리즘 수업 - 퀵 정렬 1" data-og-type="website" data-ke-align="alignCenter" data-ke-type="opengraph"> 24090번: 알고리즘 수업 - 퀵 정렬 12 5 1 4 3(i=0, j=1, A[1]과 A[1]이 교환됨) -> 2 5 1 4 3(i=1, j=2) -> 2 5 1 4 3(i..
2024. 4. 4.
[백준] 16926번 파이썬 - 배열 돌리기 1
첫번째 풀이2 ≤ N, M ≤ 3001 ≤ R ≤ 1,000min(N, M) mod 2 = 01 ≤ Aij ≤ 108 사실 문제 제한이 다음과 같아서 풀면서도 아.. 시간 초과 날 것 같은데 라는 생각을 하긴 했다.내 풀이대로라면 r * min(n,m) // 2 * (각 for문에서 돌아가는 while 문의 수) 만큼 계산하는데대충 계산해보아도 시간 제한 1초가 넘어가게 생겼다.진작 풀이 갈아엎을껄.. 혹시나 해서 짰는데 역시나 시간초과 문제가 생겼다. n,m,r = map(int,input().split())array = []# 하우상좌dx = [1,0,-1,0]dy = [0,1,0,-1]for _ in range(n): array.append(list(map(int,input().split())..
2024. 3. 29.