본문 바로가기

백준45

[알고리즘][백준] 9465번 스티커 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 대각선끼리 더하는거보다 한번 건너 뛰어서 더하는게 더 커질때를 어떻게 해야할까 고민하게 되었다 아직 dp가 알듯말듯.... import sys t = int(sys.stdin.readline()) for _ in range(t): n = int(sys.stdin.readline()) sticker = [] # 스티커 2*n for _ in range(2): sticker.append(l.. 2024. 3. 19.
[알고리즘][백준] 11057번 오르막 수 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/11057 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수 www.acmicpc.net 2차원으로 마지막 수가 0~9에 따라 뒤에 올 수 있는 수가 다르기 때문에 위와 같은 점화식을 도입했다 import sys n = int(sys.stdin.readline()) if n == 1: print(10) else: dp = [[0]*10 for _ in range(n+1)] dp[1] = [1] * 10 for i in range(2, n+1): dp.. 2024. 3. 18.
[알고리즘][백준] 1309번 동물원 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 나의 아이디어는 빈칸을 0 왼쪽에만 칠한걸 1 오른쪽에만 칠한걸 2라고 인덱스를 부여해서 2차원으로 풀어보았는데... import sys n = int(sys.stdin.readline()) dp = [[0]*3 for _ in range(n+1)] dp[1] = [1, 1, 1] if n == 1: print(sum(dp[n])) else: for i in range(2, n+1): dp[i][0] = (dp[i-1][0] + dp[i-1][1] + dp[i-1][2])%9901 dp[i][1] = (dp[i-1][0] + dp.. 2024. 3. 16.
[알고리즘][백준] 1149번 RGB거리 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net import sys n = int(sys.stdin.readline()) dp = [] for i in range(n): dp.append(list(map(int, sys.stdin.readline().split()))) for i in range(1, n): dp[i][0] = dp[i][0] + min(dp[i-1][1], dp[i-1][2]) dp[i][1] = dp[i.. 2024. 3. 13.