본문 바로가기

백준 알고리즘108

파이썬) 백준 알고리즘 | 9996번 : 한국이 그리울 땐 서버에 접속하지 n = int(input()) patten = input() file = [] for i in range(n): file.append(input()) a = patten.split('*') for i in range(n): if file[i][0:len(a[0])] == a[0] and file[i][len(file[i])-len(a[1]):len(file[i])] ==a[1]: if len(a[0]) 2022. 7. 22.
파이썬) 백준 알고리즘 | 11442번 : 홀수번째 피보나치 수의 합 https://www.acmicpc.net/problem/11442 11442번: 홀수번째 피보나치 수의 합 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 일단 f(n) - f(n-2) = f(n-1)이란 수식을 이용하면 $$ f(2) - f(0) = f(1) $$ $$ f(3) - f(1) = f(2) $$ $$ f(4) - f(2) = f(3) $$ $$ f(5) - f(3) = f(4) $$ $$ ... $$ $$ f(n) - f(n-2) = f(n-1) $$ 위 식을 다 더하게 되면 $$ f(n+1) = f(1) + \sum_{k=1}^{n-1} f(k) $$ 위 식을 유도할 수 있다. 그리고 n = 2.. 2022. 7. 22.
파이썬) 백준 알고리즘 | 1629번 : 곱셈 https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 풀이 파이썬의 pow함수를 이용하면 간단하게 구할 수 있습니다. pow(a, b, n)은 a^b을 n으로 나눈 나머지인데 효율적으로 계산하도록 구현했다고 합니다. a, b, c = map(int, input().split()) print(pow(a, b, c)) 2022. 7. 10.
파이썬) 백준 알고리즘 | 1932번 : 정수 삼각형 https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 풀이 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 이 경우에서는 7 10 15 18 16 15 20 25 20 19 24 30 27 26 24 이런식으로 각 줄마다 합이 최대가 되는 경로의 수를 만들면 됩니다. n = int(input()) nums = [] for i in range(n): a = list(map(int, input().split())) a.extend([0] * (500- len(a))) nums.append(a) for i in range.. 2022. 7. 5.