Skip to content

Commit 30273e9

Browse files
authored
Merge pull request #61 from YoonYn9915/main
YoonYn9915/9월 2-3주차/4문제
2 parents fc19b01 + 1cadecf commit 30273e9

File tree

4 files changed

+101
-0
lines changed

4 files changed

+101
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
def backtracking(cnt, arr):
2+
global answer, N, M
3+
if M == cnt:
4+
answer.append(arr[:]) # 결과를 복사해서 저장
5+
return
6+
7+
for i in range(1, N+1):
8+
if i not in arr: # 중복 방지
9+
arr.append(i)
10+
backtracking(cnt+1, arr)
11+
arr.pop() # 마지막 원소 제거로 백트래킹
12+
13+
N, M = map(int, input().split())
14+
15+
answer = []
16+
17+
backtracking(0, [])
18+
19+
# answer 리스트에서 하나씩 출력
20+
for ans in answer:
21+
print(" ".join(map(str, ans)))
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
n = int(input())
2+
k = int(input())
3+
4+
card = []
5+
dp = [0] * n
6+
7+
result = 0
8+
9+
for _ in range(n):
10+
card.append(int(input()))
11+
12+
string = ''
13+
result = set()
14+
15+
16+
def select(cnt):
17+
global string
18+
19+
if cnt == k:
20+
result.add(string)
21+
return
22+
23+
for i in range(n):
24+
if dp[i] == 0:
25+
dp[i] = 1
26+
27+
tmp = str(card[i])
28+
string += tmp
29+
30+
select(cnt + 1)
31+
32+
dp[i] = 0
33+
string = string[:-len(tmp)]
34+
35+
36+
select(0)
37+
print(len(result))
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
N = int(input())
3+
4+
T = [0]
5+
P = [0]
6+
dp = [0] * (N + 2)
7+
8+
for _ in range(N):
9+
arr = input().split()
10+
T.append(int(arr[0]))
11+
P.append(int(arr[1]))
12+
13+
dp[N + 1] = 0
14+
15+
16+
for i in range(N, 0, -1):
17+
if i + T[i] <= N + 1:
18+
dp[i] = max(dp[i + 1], P[i] + dp[i + T[i]])
19+
else:
20+
dp[i] = dp[i + 1]
21+
22+
print(dp[1])
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
N = int(input())
3+
4+
arr = list(map(int,input().split()))
5+
6+
B,C = map(int,input().split())
7+
8+
answer = 0
9+
10+
for i in range(N):
11+
arr[i] = arr[i] - B
12+
answer += 1
13+
if arr[i] <= 0:
14+
continue
15+
16+
answer += arr[i] // C
17+
if arr[i] % C != 0:
18+
answer += 1
19+
20+
21+
print(answer)

0 commit comments

Comments
 (0)