티스토리 뷰
코딩테스트에서 numpy와 같은 라이브러리 사용을 허가하는 경우가 많지 않아 이렇게 작성하게 되었다. 회사마다 문제 출제 경향이 조금씩 다르지만 순열과 조합이 자주 나오는 회사라면 외워두는 것이 좋겠다.
순열 (Permutation)
순서를 고려하여 N개 중 M개를 중복 없이 뽑는 모든 경우를 의미한다
def permutation(depth):
if depth == m: # m 개를 다 고른 경우 종료
print(result)
return
for i in range(n): # 입력 리스트의 길이
if not visited[i]:
visited[i] = True # 사용한 숫자 체크
result.append(arr[i]) # 선택한 숫자를 저장
perm(depth+1)
result.pop()
visited[i] = False
# input example
arr = [1, 2, 3]
m = 2
조합 (Combination)
순서 없이 N개 중 M개를 중복 없이 뽑는 모든 경우를 의미한다.
combination 코드의 경우 visited 리스트가 없는데, 이는 순서가 상관없기 때문이다.
def combination(start, depth):
if depth == m:
print(result)
return
for i in range(start, n): # start를 이용하여 중복 제거가 가능하다
result.append(arr[i])
comb(i+1, depth + 1)
result.pop()
'알고리즘 > Team Notes' 카테고리의 다른 글
BFS와 DFS, 둘 중 무엇을 언제 어떤 경우에 사용해야할까? (0) | 2025.06.09 |
---|---|
연산자 끼워넣기 ( 백트래킹 및 조건 분기) (0) | 2025.06.09 |
<BFS (Breadth First Search), 너비 우선 탐색> (0) | 2025.06.09 |
grid 회전 - 시계 방향, 반시계 방향 (0) | 2025.06.09 |
삼성 기출에서 자주 나오는 핵심 유형별 정리 및 추천 문제 리스트 (1) | 2025.06.09 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 조합
- 소수판별
- BFS
- 최적화
- 걸린시간
- 파이썬
- 시간복잡도
- prefix
- 복잡도
- Prefix Sum
- 투포인터
- dfs
- 에라토스테네스의체
- 소수
- time()
- 그리디
- bfs_dfs
- 코딩테스트
- 누적합
- 다이나믹프로그래밍
- graph
- 중복제거
- 그래프알고리즘
- 순코딩
- 순열
- 탐색
- numpy
- GREEDY
- 라이브러리없이
- TimeComplexity
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함