Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- select
- 파이썬
- bfs
- 프로그래머스
- 동적계획법
- DP
- Lv. 3
- 소프티어
- level 3
- Java
- Lv. 1
- softeer
- 티스토리챌린지
- SQL 고득점 KIT
- dfs
- javascript
- LEVEL 2
- SQL
- Dynamic Programming
- programmers
- 깊이 우선 탐색
- Python
- 오블완
- Lv. 0
- 너비 우선 탐색
- group by
- Baekjoon
- join
- 자바스크립트
- Lv. 2
Archives
- Today
- Total
몸과 마음이 건전한 SW 개발자
순열, 조합 만들기 본문
순열 만드는 방법
1. 방문 배열을 안에
N = 5
def dfs(S, N, V, chosen):
if S == N:
print(chosen)
return
for i in range(N):
if i not in V:
dfs(S+1, N, V+[i], chosen + [i])
2. 방문 배열을 밖에
N = 5
V = [0 for _ in range(N)]
def dfs2(S, chosen):
if S == N:
print(chosen)
return
for i in range(N):
if V[i]:
continue
V[i] = 1
dfs2(S+1, chosen+[i])
V[i] = 0
dfs2(0, [])
조합 만드는 방법
L = 5
def dfs(S, wishL, nowL, chosen):
if S >= L:
if nowL == wishL:
print(chosen)
return
dfs(S+1, wishL, nowL+1, chosen+[S])
dfs(S+1, wishL, nowL, chosen)
dfs(0, 2, 0, [])
dfs(0, 3, 0, [])
dfs(0, 4, 0, [])
느낀점
- 작년 8월에 쉽게 풀었던 순열, 조합 문제를 지금은 기억이 잘 안나는 걸 보고 블로그에 정리해야겠다고 생각했다.
- itertools 사용하는 방법도 나중에 정리해서 올릴 예정이지만 중요한건 itertools없이도 만들 수 있다는 것.
- 이거랑 비슷하게 정렬도 퀵정렬을 구현할 수 있는 것이 중요하다고 느꼈다. 다음에는 정렬도 블로그에 올릴 예정.
'알고리즘 > 알고리즘 이론' 카테고리의 다른 글
프로그래머스 [Lv. 1] 최대공약수와 최소공배수 {언어 : Java} (0) | 2024.06.07 |
---|---|
이진수 변환 구현하기 {언어: 자바스크립트} (0) | 2024.05.04 |
최대공약수, 최소공배수, 유클리드 호제법 {언어: 자바스크립트} (0) | 2024.03.28 |
에라토스테네스의 체를 이용해서 소수인지 판별하기 (0) | 2024.03.14 |
[알고리즘 이론] 거품 정렬, 거품 정렬 개선하기 (0) | 2024.02.29 |