일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 11기
- 1260
- 최소공배수
- Combination
- 매일11시
- expo
- 11053
- 앱
- 6603
- permutation
- 홈화면
- 순열
- 뒤로가기
- 11054
- Kotlin
- 파이썬
- 나머지
- 코틀린
- Android
- 백준
- 1182
- 코테
- 괄호
- lcm
- Python
- 11057
- 9095
- 안드로이드
- itertools
- LCS
- Today
- Total
목록전체 글 (181)
황소개발자
n, m = map(int, input().split()) a = [0 for i in range(m)] def go(number, selected, n, m): if selected == m: print(' '.join(map(str, a))) return if number > n: return a[selected] = number go(number, selected + 1, n, m) a[selected] = 0 go(number + 1, selected, n, m) go(1, 0, n, m) 렛츠기릿
n, m = map(int, input().split()) a = [0 for i in range(m)] def go(selected, n, m): if selected == m: print(' '.join(map(str, a))) return for i in range(1, n + 1): a[selected] = i go(selected + 1, n, m) go(0, n, m) 순서따지는 순열은 for문으로 처음부터 돌려주는 쒠스가 필요함
n, m = map(int, input().split()) subs = [0 for i in range(m)] def go(idx, selected, n, m): # 길이 채워지면 종료 if selected == m: print(' '.join(map(str, subs))) return # n 초과하면 정수 범위 벗어나는거니까 종료 if idx > n: return # 그 idx를 선택한다면 subs에 넣기 subs[selected] = idx go(idx + 1, selected + 1, n, m) # 그 idx를 선택하지 않았을 때 subs[selected] = 0 go(idx + 1, selected, n, m) go(1, 0, n, m) 빨리 깨닫고 싶다
n, m = map(int, input().split()) check = [False for i in range(n + 1)] subs = [i for i in range(m)] def go(idx, n, m): if idx == m: print(' '.join(map(str, subs))) return else: for i in range(1, n + 1): if check[i] == False: check[i] = True subs[idx] = i go(idx + 1, n, m) check[i] = False go(0, n, m) 1. 길이 m에 도달하면 종료 2. 모든 n 탐색, 선택되지 않은 것들에 대해서 재귀
import sys input = sys.stdin.readline S = [] def do(order, num): global S if order == 'add': if num not in S: S.append(num) elif order == 'remove': if num in S: S.remove(num) elif order == 'check': if num in S: print(1) else: print(0) elif order == 'toggle': if num in S: S.remove(num) else: S.append(num) elif order == 'all': S = [i for i in range(1, 21)] elif order == 'empty': S = [] n = int(inp..
import sys input = sys.stdin.readline n = int(input()) days = [] for i in range(n): days.append(list(map(int, input().split()))) ans = -999999999 def go(day, total): global ans if day == n: # n에 알맞게 도착했을 때, 정답이 될 수 있다. ans = max(ans, total) return if day > n: # n을 초과한다면 범위 안에 일을 못끝내므로, 정답이 될 수 없다. return go(day + 1, total) # 이번 day는 일을 하지 않고 그냥 넘어간다! go(day + days[day][0], total + days[day][1]) ..
import sys input = sys.stdin.readline n, s = map(int, input().split()) lst = list(map(int, input().split())) ans = 0 def sub_sum(idx, total): global ans, s if idx == n: if total == s: ans += 1 return sub_sum(idx + 1, total) sub_sum(idx + 1, total + lst[idx]) sub_sum(0, 0) ans -= 1 if s == 0 else 0 print(ans)
import sys input = sys.stdin.readline def next_permutation(lst): n = len(lst) i = n - 1 while i > 0 and lst[i - 1] >= lst[i]: i -= 1 if i == 0: return [-1] j = n - 1 while lst[i - 1] >= lst[j]: j -= 1 tmp = lst[j] lst[j] = lst[i - 1] lst[i - 1] = tmp lst = lst[:i] + sorted(lst[i:]) return lst L, C = map(int, input().split()) lst = input().split() lst.sort() bit = [0] * (C - L) + [1] * L bites = ..