본문 바로가기

백준 알고리즘108

파이썬) 백준 알고리즘 | 11726번 : 2×n 타일링 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net dp문제입니다. 경우의 수를 계산하다보면 규칙성이 보이는데 이 문제에서는 앞에 두 개의 항을 더하는 것이 규칙입니다. n = int(input()) dp = [0] * (n) if n == 1: print(1) else: dp[0] = 1 dp[1] = 2 for i in range(2, n): dp[i] = dp[i-1] + dp[i-2] print(dp[n-1] % 10007) 2022. 6. 30.
파이썬) 백준 알고리즘 | 16120번 : PPAP https://www.acmicpc.net/problem/16120 16120번: PPAP 첫 번째 줄에 문자열이 주어진다. 문자열은 대문자 알파벳 P와 A로만 이루어져 있으며, 문자열의 길이는 1 이상 1,000,000 이하이다. www.acmicpc.net pseudo code A를 처리하는게 핵심입니다. stack = deque() for i=1 to {len sentence} do stack.append(sentence[i]) if sentence[i] == A then A주변의 문자열을 조사해서 PPAP인지 확인한다 if PPAP then stack에 있는 PPAP에서 P만 남긴다 else break if stack == 'P': print("PPAP") else: pirnt('NP') *제가 .. 2022. 6. 30.
파이썬) 백준 알고리즘 | 2670번 : 연속부분최대곱 https://www.acmicpc.net/problem/2670 2670번: 연속부분최대곱 첫째 줄은 나열된 양의 실수들의 개수 N이 주어지고, 그 다음 줄부터 N개의 수가 한 줄에 하나씩 들어 있다. N은 10,000 이하의 자연수이다. 실수는 소수점 첫째자리까지 주어지며, 0.0보다 크거나 www.acmicpc.net 백준 2670 '연속부분최대곱' 문제입니다. 처음에 그냥 곱하는 모든 경우의 수를 구했었는데 시간초과가 떠서 리스트에 곱해서 저장을 하였습니다. 예를 들어 입력으로 1,2,3,4,5 이렇게 들어온다면 리스트에는 1,1,2,6,24,120 이런 식으로 들어가게 만들고 인덱스를 이용해서 j번째를 i번째로 나눠준다면 i+1부터j까지의 곱이 됩니다. 그런데 중간에 0이 들어가게 된다면 0이후.. 2022. 6. 28.
파이썬) 백준 알고리즘 | 1254번 : 팰린드롬 만들기 https://www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 백준 1254 '팰린드롬 만들기' 문제입니다. 저의 아이디어를 설명하겠습니다. 일단 input을 test라고 하면 test + test[::-1][1:]을 만듭니다. 예를 들어서 input을 abacaba라고 하면 일단 abacaba'bacaba'를 만듭니다. 그리고 문자를 ''안에 있는 문자를 하나씩 지워가면서 체크해줍니다. 위에 예로 진행하면 abacaba'bacaba' abacaba'acaba' .. 2022. 4. 4.