본문 바로가기
반응형

알고리즘 풀이/백준125

[백준 11402] 이항 계수 4(python) https://www.acmicpc.net/problem/11402 11402번: 이항 계수 4 첫째 줄에 \(N\), \(K\)와 \(M\)이 주어진다. (1 ≤ \(N\) ≤ 1018, 0 ≤ \(K\) ≤ \(N\), 2 ≤ \(M\) ≤ 2,000, M은 소수) www.acmicpc.net 이항 계수 4 문제 이항 계수를 소수로 나누었을 때의 나머지를 구하는 문제 뤼카의 정리를 이용하여 해결할 수 있다. ⚙️정답 코드 def Lucas(n,k): #뤼카의 정리 if n < k : # nCk 에서 K가 더 클 경우 return 0 elif n == k : # nCk 에서 n과 k가 같을 경우 return 1 x = 1 for i in range(1, k+1): # 그외 k가 더 큰 경우 k까지 늘려.. 2023. 4. 3.
[백준 2877] 4와 7 (python) https://www.acmicpc.net/problem/2877 2877번: 4와 7 창영이는 4와 7로 이루어진 수를 좋아한다. 창영이가 좋아하는 수 중에 K번째 작은 수를 구해 출력하는 프로그램을 작성하시오. www.acmicpc.net 4와 7 문제 4와 7로 이루어진 수 중에서 K번째로 작은 숫자를 구해서 출력해 보자. 숫자의 규칙을 발견할 수 있다면 어렵지 않게 풀 수 있는 문제 ⚙️내가 푼 정답코드 import sys N = int(sys.stdin.readline()) result ='' while N > 0: m = N % 2 # 짝수인지 홀수인지 판별 N = N // 2 # 2로 나눈 몫 if m == 0: # 짝수면 N -= 1 # N에 1을 빼고 result = '7'+ result.. 2023. 4. 3.
[백준 22863] 원상 복구 (large) (python) https://www.acmicpc.net/problem/22863 22863번: 원상 복구 (large) 수가 적혀있는 $P_1, P_2, ..., P_N$ $N$개의 카드가 있다. 1부터 N까지 수가 하나씩 존재하는 $D_1, D_2, ... , D_i , ... D_N$ 가 있다. 이때 $D_i$는 $P_{D_i}$ 값을 $i$ 번째로 가지고 오는 것을 의미한다. 이러한 www.acmicpc.net 원상 복구 (large) 문제 PDi 값을 i 번째로 가져오는 셔플을 K번 작업했을 경우, 최종적으로 출력되는 결과 카드를 구해보자. 순열 사이클을 찾아내서 계산해야 하는 문제 ⚙️정답 코드 import sys N, K = map(int, sys.stdin.readline().split()) P = [0.. 2023. 3. 31.
[백준 12728] n제곱 계산 (python) https://www.acmicpc.net/problem/12728 12728번: n제곱 계산 이 문제에서 숫자 (3 + √5)n 에 대한 소수점 앞에 마지막 세 자리를 찾아야합니다. 예를 들어, n = 5 일 때 (3 + √5)5 = 3935.73982 ... 이므로 답은 935입니다. n = 2 인 경우 (3 + √5)2 = 27.4164079 … 이므로, www.acmicpc.net n제곱 계산 문제 (3+√5)를 n제곱 했을 때 소수점 앞 세 자리를 찾는 문제 분할 정복과 수학에 대한 이해가 있어야 풀 수 있었다. ⚙️내가 푼 정답코드 def mult(a,b): # 행렬의 곱 구하기 A = [[0,0],[0,0]] for i in range(2): for j in range(2): for k in.. 2023. 3. 30.
[백준 14889] 스타트와 링크(python) https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 스타트와 링크 문제 짝수인 N명의 사람을 2개의 팀으로 나누어 각각의 팀의 능력치의 차이를 최소로 만드는 문제 백트래킹을 활용하거나 조합을 활용해서 풀 수 있다. ⚙️내가 푼 정답코드(백트래킹 활용) def team(a,n): global result if a == N//2: # 유망하다면 start, link = 0, 0 # start 팀, link팀 for i in range(N): for j in range(N).. 2023. 3. 30.
[백준 2630] 색종이 만들기(python) https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 색종이 만들기 문제 색종이의 가로 세로를 N//2 영역으로 만들어 내려갔을 때, 파란색 색종이 영역의 갯수와 흰색 색종이 영역(잘려나간 흰색 종이)의 갯수를 구하는 문제 분할 정복을 활용한 재귀를 이용하면 쉽게 풀 수 있다 ⚙️내가 푼 정답코드 def div(y, x, n): color = paper[y][x] # 색종이의 색 for i in range(y, y+n): .. 2023. 3. 29.
반응형