일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ssd
- Python
- 파이썬
- SWEA
- CS231n
- 머신러닝
- ubuntu
- pytorch
- docker
- 3단계
- STL
- 이것이 코딩테스트다 with 파이썬
- 전산기초
- 코드수행
- 모두를 위한 딥러닝 강좌 시즌1
- 자료구조 및 실습
- 그리디
- AWS
- 딥러닝
- Object detection
- 프로그래머스
- 구현
- 1단계
- 2단계
- cs
- C++
- test-helper
- 백준
- 실전알고리즘
- MySQL
- Today
- Total
곰퓨타의 SW 이야기
[python] 순열과 조합을 모듈로?? 본문
아래 문제를 해결하다가 , 순열과 조합을 한 결과를 리턴해주는 모듈이 똑똑한 파이썬에는 있지않을까..?해서 모듈을 찾게 되었다.
programmers.co.kr/learn/courses/30/lessons/42839
코딩테스트 연습 - 소수 찾기
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이
programmers.co.kr
역시 똑똑한 파이썬에는 itertools를 통해 순열과 조합을 구현할 수 있게 하였다..!!
1. 순열
순열은 고등학교 때 흔히 배웠던 nPr = n! / (n-r)!을 의미한다.
이는 순서를 고려하는 것으로 itertools를 활용하면 쉽게 순열을 찾을 수 있다.
import itertools
arr = ['1','2','3']
print(list(itertools.permutations(arr,2)))
#[('1', '2'), ('1', '3'), ('2', '1'), ('2', '3'), ('3', '1'), ('3', '2')]
permutation의 첫번째 파라미터로 순열을 적용하고자 하는 반복 가능한 객체를 넣고, 두번째 파라미터로 r에 해당하는 수를 넣어주면
쉽게 순열을 구현할 수 있다는 것을 알 수 있었다!
2. 조합
조합은 nCr = nPr / r! = n! / ((n-r)! x r!) 이다.
이는 순서를 고려하지 않는 것으로 itertools를 활용하면 쉽게 조합을 찾을 수 있다.
import itertools
arr = ['1','2','3']
print(list(itertools.combinations(arr,2)))
#[('1', '2'), ('1', '3'), ('2', '3')]
combination 또한 첫번째 파라미터로 조합을 적용하고자 하는 반복 가능한 객체를 넣고, 두번째 파라미터로 r에 해당하는 수를 넣어주면
쉽게 조합을 구현할 수 있다는 것을 알 수 있었다!
코딩테스트 문제를 해결하다 보면 수학적인 사고를 필요로 하는 문제가 많아서 유용하게 쓸 수 있을 것 같다..!⭐️
'TIL > 코테개념_python' 카테고리의 다른 글
[python] numpy 사용법 뿌시기 (0) | 2021.01.01 |
---|---|
[python] zip을 이러한 방법으로 활용한다구 ?? (0) | 2020.12.30 |
[python] heapq 모듈 부시기❗️ (0) | 2020.12.28 |
[python] deque란❓ (0) | 2020.12.27 |
[python] 문자열 채우기 (0) | 2020.12.26 |