본문 바로가기
반응형

알고리즘250

[백준][Python] 18429번 근손실 18429번: 근손실 웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로 www.acmicpc.net 코드 n,k = map(int,input().split()) n_list = list(map(int,input().split())) visit = [False] * n cnt = 0 ans = 0 def dfs(weight): global cnt, ans if weight < 500: return if cnt == n: ans += 1 return for i in range(n): if visit[i] == False: visit[i] = True we.. 2022. 8. 8.
[백준][Python] 10974번 모든 순열 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 코드 n = int(input()) visit = [False] * (n+1) s = [] def dfs(): if len(s) == n: print(*s) return for i in range(1,n+1): if visit[i] == False: s.append(i) visit[i] = True dfs() s.pop() visit[i] = False dfs() 아래 문제와 거의 똑같다. [백준][Python] 15649번 N과 M (1) 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 .. 2022. 8. 4.
[백준][Python] 1182번 부분수열의 합 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 코드 n, s = map(int,input().split()) n_list = list(map(int,input().split())) cnt = 0 def dfs(num,sum): global cnt if num >= n: return sum += n_list[num] if sum == s: cnt += 1 dfs(num+1,sum) dfs(num+1,sum-n_list[num]) dfs(0,0) print(cnt) 설명 df.. 2022. 8. 3.
[백준][Python] 15652번 N과 M (4) 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 코드 n,m = map(int,input().split()) s = [] def dfs(num): if len(s) == m: print(*s) return for i in range(num,n+1): s.append(i) dfs(i) s.pop() dfs(1) 2022. 8. 1.
반응형