7월, 2019의 게시물 표시

2. Python - Array 배열 예제 알고리즘

리스트에서 같은 원소 찾아내기 L이라는 List 내에 x라는 요소가 포함되어 있는 위치인 Index를 찾아서 samenum_idx 리스트 안에 Insert()해주는 거에요. 저는 enumerate()를 사용을 했는데 L 안에 있는 요소인 num과 찾고자 하는 x 요소를 비교해가며 같다면 index를 찾아낸 알고리즘입니다. 아래 코드를 참고해주세용 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 def solution (L, x): samenum_idx = [] try : for index, num in enumerate(L): if num == x: samenum_idx . append(index) else : pass if len(samenum_idx) == 0 : samenum_idx . append( - 1 ) except : print ( "예외발생" ) return samenum_idx

3. Python - Array 배열 이진 탐색 구현

리스트 - 이진 탐색 알고리즘 이진 탐색 알고리즘 이진 탐색은 데이터가 정렬이 되어있어야만 의미가 있어요. 당연하겠지만 정렬이 되어있지 않다면 절대 쓰면 안되는 것입니당. 이진 탐색이라는 것은 예를 들어, 배열이 list1 = [1,3,5,6,7,8,24,43,55,67] 이라면 24를 찾게 될 때 전체 list에 중간에서 부터 탐색이 시작됩니다. 그렇게 하다보면 일일이 하나 씩 Searching하는 것 보다 더 효율적이겠죠. Python 코드로 구현해보았습니다. 3 가지가 핵심인데요. 이 3가지로만 Loop를 돌리게 되면 금방 탐색을 할 수 있죵. lower - 시작 변수  upper - 끝 변수 middle = 시작과 끝의 중간 변수  1 2 3 4 5 6 7 8 9 10 11 def solution (L, x): lower = 0 upper = len(L) - 1 answer = - 1 while ( lower <= upper ): middle = (lower + upper) // 2 if L[middle] > x: upper = middle - 1 elif L[middle] < x: lower = middle + 1 else : return middle return answer

1. Python - Array 배열

Arrays 1. 배열이란? Python에서 Array는 List라고 하죠. 데이터를 선 처럼 일렬로 쭉 늘어선 형태를 말합니다! 가장 흔하게 사용하는 것인데 어떤 자료구조를 이용하느냐에 따라 효율적으로 기능을 발휘할 수도 혹은 없을 수도 있어요. 그 연산들을 한 번 볼게요. 2. Python 리스트에 활용할 수 있는 연산들 1) 리스트 길이와 관계없이 빠르게 실행 결과를 보게 되는 연산들 (1) 원소 덧붙이기    : .append() (2) 원소 하나 꺼내기    : .pop() 리스트 맨 끝에 있는 요소를 .pop()을 이용해서 빼는 건 시간이 걸리지 않습니다. 하지만 특정 위치의 요소를 제거하고자 하면 시간이 걸리겠쬬? 2) 리스트의 길이에 비례해서 실행 시간이 걸리는 연산들 (1) 원소 삽입하기    : .insert() (2) 원소 삭제하기    : .del() 이런 연산들은 리스트의 길이에 따라 시간도 비례하게 걸립니다. 네... 참고해야되겠쥬?  List를 이용해서 함수를 만들고자 할 떄, 가장 효과적인 방법을 찾고 계신다면 자료구조를 배워보시는걸 추천합니다~