๐ฑ Algorithm(53)
-
๋ฐฑ์ค 7569 ํ์ด์ฌ
https://www.acmicpc.net/problem/7569 7569๋ฒ: ํ ๋งํ ์ฒซ ์ค์๋ ์์์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ๋ ์ ์ M,N๊ณผ ์์์ฌ๋ ค์ง๋ ์์์ ์๋ฅผ ๋ํ๋ด๋ H๊ฐ ์ฃผ์ด์ง๋ค. M์ ์์์ ๊ฐ๋ก ์นธ์ ์, N์ ์์์ ์ธ๋ก ์นธ์ ์๋ฅผ ๋ํ๋ธ๋ค. ๋จ, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net ์ ๋ต ์ฝ๋ from collections import deque from itertools import chain from sys import stdin M, N, H = map(int, stdin.readline().split()) board = [] queue = deque() for h in range(H): temp = [] for n in range(N): temp..
2022.01.26 -
๋ฐฑ์ค 16953 ํ์ด์ฌ
https://www.acmicpc.net/problem/16953 16953๋ฒ: A → B ์ฒซ์งธ ์ค์ A, B (1 ≤ A target: continue else: queue.append((num * 2, c..
2022.01.25 -
๋ฐฑ์ค 11055 ํ์ด์ฌ
https://www.acmicpc.net/problem/11055 11055๋ฒ: ๊ฐ์ฅ ํฐ ์ฆ๊ฐ ๋ถ๋ถ ์์ด ์์ด A๊ฐ ์ฃผ์ด์ก์ ๋, ๊ทธ ์์ด์ ์ฆ๊ฐ ๋ถ๋ถ ์์ด ์ค์์ ํฉ์ด ๊ฐ์ฅ ํฐ ๊ฒ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์๋ฅผ ๋ค์ด, ์์ด A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} ์ธ ๊ฒฝ์ฐ์ ํฉ์ด ๊ฐ์ฅ ํฐ ์ฆ๊ฐ ๋ถ๋ถ ์ www.acmicpc.net ์ ๋ต ์ฝ๋ from sys import stdin read = stdin.readline N = int(read()) arr = list(map(int, read().split())) dp = [0] * N dp[0] = arr[0] for i in range(1, N): dp[i] = arr[i] for j in range(i): if ..
2022.01.23 -
๋ฐฑ์ค 1912 ํ์ด์ฌ
1912๋ฒ: ์ฐ์ํฉ ์ฒซ์งธ ์ค์ ์ ์ n(1 ≤ n ≤ 100,000)์ด ์ฃผ์ด์ง๊ณ ๋์งธ ์ค์๋ n๊ฐ์ ์ ์๋ก ์ด๋ฃจ์ด์ง ์์ด์ด ์ฃผ์ด์ง๋ค. ์๋ -1,000๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 1,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค. www.acmicpc.net ์ ๊ทผ ๋ฐฉ๋ฒ ์ฐ์๋ ์๋ฅผ ๋ํด์ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์์ผํ๋ค. ์ฃผ์ด์ง ๋ฐฐ์ด์ ์ซ์ ์ค ์์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๋ํ๋๋ผ๋ ์ต๋ ํฉ์ ๋ง๋ค ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์์ผํ๋ค. ์๋ ๋ฉ๋ชจ๋ ์ฃผ์ด์ง ํ ์คํธ์ผ์ด์ค๋ฅผ ์ค์ ๋ก ๋ํด๋ณธ ๊ณผ์ ์ ๋ํ๋ธ๋ค. arr ์ ์ฃผ์ด์ง ์ ๋ ฅ์ด๊ณ , dp ์ ๊ฐ ์์๋ ์ฐ์๋ ํฉ์ ๋ํ๋ธ๋ค. dp[i] ์ ๊ฐ์ arr ์ ์ฒซ๋ฒ์งธ ์์๋ถํฐ ์ฐจ๋ก๋ก ๋ํด๊ฐ๋ฉด์ ์ ๋ฐ์ดํธ ๋๋ค. ์ฆ dp[i] ์ ๊ฐ์ dp[i - 1] + arr[i] ๊ฐ ๋๋ ์ ์ด๋ค. ์ค์ํ ..
2022.01.20 -
๋ฐฑ์ค 11053 ํ์ด์ฌ
https://www.acmicpc.net/problem/11053 11053๋ฒ: ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด ์์ด A๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์๋ฅผ ๋ค์ด, ์์ด A = {10, 20, 10, 30, 20, 50} ์ธ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด์ A = {10, 20, 10, 30, 20, 50} ์ด www.acmicpc.net ์ ๋ต ์ฝ๋ import sys N = int(sys.stdin.readline()) arr = list(map(int, sys.stdin.readline().split())) dp = [1] * N for i in range(N): for j in range(i): if arr[j] < arr[i]: dp[i] = ma..
2022.01.18 -
๋ฐฑ์ค 12852 ํ์ด์ฌ
https://www.acmicpc.net/problem/12852 12852๋ฒ: 1๋ก ๋ง๋ค๊ธฐ 2 ์ฒซ์งธ ์ค์ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 106๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์ N์ด ์ฃผ์ด์ง๋ค. www.acmicpc.net ์ ๋ต ์ฝ๋ (์๋ ๋น ๋ฆ) def solution(): visited = [] queue = [[N, [N]]] while queue: number, path = queue.pop(0) if number == 1: print(queue) print(len(path) - 1) print(" ".join(map(str, path))) break if number not in visited: visited.append(number) if number % 3 == 0: queue.append([number //..
2022.01.12 -
๋ฐฑ์ค 2293 ํ์ด์ฌ
https://www.acmicpc.net/problem/2293 2293๋ฒ: ๋์ 1 ์ฒซ์งธ ์ค์ n, k๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) ๋ค์ n๊ฐ์ ์ค์๋ ๊ฐ๊ฐ์ ๋์ ์ ๊ฐ์น๊ฐ ์ฃผ์ด์ง๋ค. ๋์ ์ ๊ฐ์น๋ 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. www.acmicpc.net ๋ฌธ์ ์์ฝ ์ฃผ์ด์ง N๊ฐ ์ซ์๋ก ์ด๋ค์ง ๋ฐฐ์ด์ ๊ฐ์ ๋ํ์ฌ, K ๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํ๋ผ (๋ฐฐ์ด์ ์ซ์๋ ์ค๋ณตํ์ฌ ๋ํด๋ ๋๋ค) ์ ๋ต ์ฝ๋ N, K = map(int, input().split()) arr = [] for _ in range(N): arr.append(int(input())) dp = [0] * (K + 1) dp[0] = 1 for a in arr: for j in range(a, ..
2022.01.09 -
๋ฐฑ์ค 1699 ํ์ด์ฌ
https://www.acmicpc.net/problem/1699 1699๋ฒ: ์ ๊ณฑ์์ ํฉ ์ด๋ค ์์ฐ์ N์ ๊ทธ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ๊ณฑ์๋ค์ ํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋ค. ์๋ฅผ ๋ค์ด 11=32+12+12(3๊ฐ ํญ)์ด๋ค. ์ด๋ฐ ํํ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ๋ ์ ์๋๋ฐ, 11์ ๊ฒฝ์ฐ 11=22+22+12+12+12(5๊ฐ ํญ)๋ ๊ฐ๋ฅํ๋ค www.acmicpc.net ์ค๋ต ์ฝ๋ ํ ์คํธ ์ผ์ด์ค๋ ๋ชจ๋ ๋ง์ท๊ธธ๋ ์ ๋ต์ธ์ค ์ฐฉ๊ฐํ๋ค. from math import sqrt N = int(input()) n = N count = 0 while N > 0: if int(sqrt(n)) == sqrt(n): N -= n count += 1 n = N else: n -= 1 print(count) ๋ฐ๋ก๋ 12 ๋ฅผ ์ ๋ ฅํ ๋์ธ๋ฐ, ์ ์ฝ..
2022.01.07 -
๋ฐฑ์ค 2003 ํ์ด์ฌ
https://www.acmicpc.net/problem/2003 2003๋ฒ: ์๋ค์ ํฉ 2 ์ฒซ์งธ ์ค์ N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ A[1], A[2], …, A[N]์ด ๊ณต๋ฐฑ์ผ๋ก ๋ถ๋ฆฌ๋์ด ์ฃผ์ด์ง๋ค. ๊ฐ๊ฐ์ A[x]๋ 30,000์ ๋์ง ์๋ ์์ฐ์์ด๋ค. www.acmicpc.net ์ฌ๊ณ ๊ณผ์ 1. M ์ด๋ ๋งค์นญ๋ ๋๊น์ง ์ฐจ๋ก๋ก ๋ํ๊ฑฐ๋ 2. M ๋ณด๋ค ์ปค์ง๋ฉด break 3. ์ด๋ป๊ฒ M ์ ๋ง์ถ๋๋๋ ๊ด์ฌ์๋ค. ์ฐ์๋ ์ซ์์ ๋ช๊ฐ์ง ๊ฒฝ์ฐ๊ฐ M ์ ๋ง์ถ๋์ง๊ฐ ์ค์. ์ ๋ต ์ฝ๋ from sys import stdin N, M = map(int, stdin.readline().split()) arr = list(map(int, stdin.re..
2022.01.07