알쓸코지
article thumbnail
[탐색] 이진 탐색/이분 탐색(Binary Search) 개념 및 구현
Algorithm/이론 2023. 8. 26. 22:20

가장 기본 탐색 방법인 순차 탐색에 대해 먼저 알아본 뒤, Python으로 이진 탐색을 구현하는 방법까지 살펴보자! 순차 탐색(Sequential Search) 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법이다. 순차 정렬은 보통 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용한다. 리스트 내에 데이터가 아무리 많아도 시간만 충분하다면 항상 원하는 원소(데이터)를 찾을 수 있다. 동작 과정 초기 단계 다음 리스트 안에서 c를 찾아보자. 가장 먼저 첫 번째 데이터를 확인한다. `target`(=`c`)와 같지 않으므로 다음 데이터로 이동한다. 두 번째 데이터를 확인한다. `target`(=`c`)와 같지 않으므로 다음 데이터로 이동한다. 세 번째 데이터..

article thumbnail
[순열/조합] itertools 라이브러리를 이용하여 순열/조합 구하기
Algorithm/이론 2023. 6. 23. 14:59

오늘은 Python의 itertools 라이브러리를 이용하여 순열, 조합을 쉽게 구현하는 방법에 대해 알아보자! 개념 순열 (permutation) 서로 다른 n개에서 r를 선택하여 순서 있게 나열하는 것 이를 nPr로 표현한다. nPr = n! / (n - r)! (단, r

article thumbnail
[소수 판정] Python으로 소수 판정하기
Algorithm/이론 2023. 6. 15. 13:39

개념 소수: 1보다 큰 자연수 중, 1과 자기 자신만을 약수로 가지는 수 코드 일반 소수 판별 코드 def is_prime_number(x): for i in range(2, x): if x % i == 0: return False return True print(is_prime_number(4)) # False print(is_prime_number(7)) # True 개선된 소수 판별 코드 def is_prime_number(x): for i in range(2, int(x ** 0.5) + 1): if x % i == 0: return False return True print(is_prime_number(4)) # False print(is_prime_number(7)) # True 📚 Refer..