Python

    파이썬(python) 라이브러리 - bisect (이진탐색, 바이너리 서치, Binary Search)

    파이썬(python) 라이브러리 - bisect (이진탐색, 바이너리 서치, Binary Search)

    이진탐색 (바이너리 서치, Binary Search) 정렬된 리스트에서 탐색 범위를 절반씩 좁혀나가며 빠르게 탐색하는 방법 특징 탐색 범위가 매우 크게 주어짐 O(n) 인 선형탐색으로는 시간초과 나는 경우 사용가능 정렬된 리스트에서 특정 값을 매우 빠르게 찾고 싶을때 사용 시간 복잡도 O(log N) 구현 1. bisect 라이브러리 사용 bisect.bisect_left(정렬된 리스트, target) 정렬된 리스트에서 target을 insert할때의 위치 bisect.bisect_right(정렬된 리스트, target) 정렬된 리스트에서 target을 insert할때의 위치+1 ※ bisect.bisect는 bisect.bisect_right와 동일함 bisect.insert() 함수는 bisect함수..

    파이썬(python) 라이브러리 - collections.Counter

    파이썬(python) 라이브러리 - collections.Counter

    collections.Counter(iterbale) iterbale 객체의 각 요소의 등장 횟수를 세는 기능 리스트에 음수가 있으면 안됨 !!!!!!!!!!!!!!! import collections a = [1,2,3,1,2,3,3,4] b = collections.Counter(a) : 등장 횟수 많은것 부터 dict{값:등장횟수} 로 돌려줌 Counter({3: 3, 1: 2, 2: 2, 4: 1}) c = b.most_common() : 리스트[튜플()]로 변환하여 반환 [(3, 3), (1, 2), (2, 2), (4, 1)] d = b.elements() : 카운터된 개수만큼 요소 반환 list(d) [1, 1, 2, 2, 3, 3, 3, 4] list(b) [1, 2, 3, 4] 그럼 음수..

    파이썬(python) 유용한 표준 라이브러리

    파이썬(python) 유용한 표준 라이브러리

    표준 라이브러리 내장 함수 : sum(), min(), max(), sorted() 참고로 pow(a,b,n) 함수는 아래와 같이 작동하지만 저렇게 작성한 것 보다 훨씬 효율적으로 작동하여 시간차이 많이남. x = a**d % n 아래 참고 Why is pow(a, d, n) so much faster than a**d % n? I was trying to implement a Miller-Rabin primality test, and was puzzled why it was taking so long (> 20 seconds) for midsize numbers (~7 digits). I eventually found the following line of code to b... stackoverflo..

    파이썬(python) 라이브러리 - itertools (순열, 조합, 누적합)

    파이썬(python) 라이브러리 - itertools (순열, 조합, 누적합)

    itertools 라이브러리 순열 : 서로다른 n개 에서 서로 다른 r개 선택하여 순서대로 나열 list(permutations(data, 선택할 개수)) from itertools import permutations a=list(permutations(data,1)) b=list(permutations(data,2)) c=list(permutations(data,3)) data = ['A','B','C'] [('A',), ('B',)] [('A', 'B'), ('B', 'A')] [] data = [1,2] [(1,), (2,)] [(1, 2), (2, 1)] [] data = ['A','B','C'] [('A',), ('B',), ('C',)] [('A', 'B'), ('A', 'C'), ('B', ..

    파이썬(python) 정렬 (sort)

    파이썬(python) 정렬 (sort)

    이터러블 정렬 (반환됨) sorted(iterable, key, reverse=False) ○ 오름차순 / 내림차순 a = sorted(iterable) : 오름차순 정렬 b = sorted(iterable, reverse=True) : 내림차순 정렬 ○ 특정 값을 기준으로 정렬 sorted('ba','cc','ab') ['ab', 'ba', 'cc'] sorted('ba','cc','ab', key=lambda x:x[1]) : [1]인덱스 우선, [0]인덱스 다음 ['ba', 'ab', 'cc'] sorted([(3,2),(2,1),(1,2)], key=lambda x:(x[1],x[0])) : [1]인덱스 우선, [0]인덱스 다음 [(1, 1), (2, 2), (3, 3)] ○ 자료형 별 정렬 예시..

    파이썬 (python) 문자열 뒤집기 (reverse)

    파이썬 (python) 문자열 뒤집기 (reverse)

    문자열 뒤집기 1. list 로 변환하고 list.reverse() 사용 a = 'abcde' list(a).reverse() : 반환값 없이 자기자신을 변경 c = ''.join(b) c = 'edcba' 2. reversed() 함수 사용 reversed(str) : reversed object 생성됨 join 함수를 사용하여 str 변환해주어야 함. ''.join(reversed(str)) a = '12' b = ''.join(reversed(a)) print(b) : 21 (str) print(int(b)) : 21 (int) 3. 슬라이싱[::-1] str[::-1] : 문자열 전체를 반대로(step=-1)

    파이썬(python) 설치, 환경 구성 (VS Code)

    파이썬(python) 설치, 환경 구성 (VS Code)

    파이썬 설치, 환경 구성 1. Python 및 Visual Studio Code 설치 - Python 다운로드 다운로드 방법 : Download > .exe 파일 실행 > Install Now (Add Python 3.x to Path 채크) > 설치완료 - Visual Studio Code 다운로드 2. Anaconda 설치 후 VS Code에 연동 파이썬 Tool - 아나콘다 Anaconda 라이브러리 패키지들을 관리해주는 도구 가상환경을 만들어서 각 환경마다 따로 패키지 설치가 가능함. 현재 환경에 필요한 패키지와 버전을 지정해놓고 사용할 수 있고 환경이 필요 없어지면 11001.tistory.com VS Code에서 코드 실행 시 설정한 아나콘다 환경이 자동 실행되는 것 확인 !! Terminal..

    파이썬(python) - 입출력

    파이썬(python) - 입출력

    콘솔로 입출력 하기 1. 내장 함수 사용 ○ 입력 : input() input() 동작 : 콘솔 입력 → (Enter) → str변환 → '\n'(개행)제거 → 반환 input("문구") 동작 : "문구"출력 → 콘솔 입력 → (Enter) → str변환 → 개행('\n')제거 → 반환 ○ 사용 예시 a = input("입력해주세요 :") 입력해주세요 : (사용자 입력받음) Enter ○ 출력 : print(*value, end='\n', sep=' ') print(*value, end='\n', sep=' ') - *value : 가변 입력 (콤마로 구분된 여러 입력 받을 수 있음) - end : 줄바꿈 문자 (기본은 개행) - sep : 구분자 (기본은 공백) 동작 : 값sep값sep값end 순서로 ..

    파이썬(python) - 이터레이션 형 (Iteration)

    파이썬(python) - 이터레이션 형 (Iteration)

    이터레이션 형 (Iteration) 이터레이션(Iteration) : 어떤 객체의 원소에 하나씩 차례로 접근하는 것 - 이터러블(Iterable) : 이터레이션 가능하며 Iterator 객체로 변환가능한 객체 - 이터레이터(Iterator) : 값을 차례대로 접근하여 조회가능한 객체 - iter(Iterator객체) : 이터레이터 객체(자기자신) 호출 - iter(Iterable객체) : 이터레이터 객체로 바꿔서 반환 - next(Iterator객체) : 다음 순번을 호출. 다음 데이터 없으면 StopIteration 예외 발생 s=[1,2,3] next(s) : 1 next(s) : 2 next(s) : 3 next(s) : StopIteration Exception ※ for문은 내부적으로 Itera..

    파이썬(python) 알고리즘 - 소수 찾기

    파이썬(python) 알고리즘 - 소수 찾기

    소수 판별, 소수 찾기, 소수 검사, 소수 판단 특정 숫자의 약수들을 나열했을때의 중앙값