Loading [MathJax]/jax/output/CommonHTML/fonts/TeX/fontdata.js
[Python] 시간 복잡도
·
Develop/Python
시간 복잡도1. 알고리즘 복잡도 계산이 필요한 이유하나의 문제를 푸는 알고리즘은 다양할 수 있음정수의 절대값 구하기방법1 : 정수 값을 제곱한 값에 다시 루트 씌우기방법2 : 정수가 음수인지 확인해서, 음수일 때만 -1을 곱하기 2. 알고리즘 복잡도 계산 항목시간 복잡도 : 알고리즘 실행 속도공간 복잡도 : 알고리즘이 사용하는 메모리 사이즈Big O (빅-오) 표기법 : O(N)알고리즘 최악의 실행 시간을 표기가장 많이/일반적으로 사용아무리 최악의 상황이라도, 이 정도의 성능은 보장한다는 의미Ω(오메가) 표기법 : Ω(N)Θ(세타) 표기법 : Θ(N) 시간복잡도 계산은 반복문이 핵심 요소이다. 계산 표기는 최상, ..
[Python] collections.Counter
·
Develop/Python
collections.Counter 클래스를 사용하여 데이터의 개수를 효율적으로 셀 수 있다.https://docs.python.org/ko/3/library/collections.html#collections.Counter collections — 컨테이너 데이터형 — Python 3.10.5 문서collections — 컨테이너 데이터형 소스 코드: Lib/collections/__init__.py 이 모듈은 파이썬의 범용 내장 컨테이너 dict, list, set 및 tuple에 대한 대안을 제공하는 특수 컨테이너 데이터형을 구현합니다. nameddocs.python.org collections.Counterfrom collections import CounterCounter('collections..
[Python] 그리디 (Greedy)
·
Develop/Python
1. 그리디 (Greedy) ?영어 단어 Greedy는 '욕심 많은'이란 뜻을 가지고 있다. 이 뜻 그대로 그리디 알고리즘이란 '현재 상황에서 가장 좋은 최선의 선택을 고르는' 알고리즘을 말합니다.순간 순간 최적이라고 생각되는 것을 선택해 나가는 방식으로 최종적인 해답을 찾지만 그것이 최적이라는 보장은 없습니다. 2. 그리디 알고리즘 문제를 해결하는 방법선택 절차(Selection Procedure) : 현재 상태에서의 최적의 해답을 선택적절성 검사(Feasibility Check) : 선태된 해가 문제의 조건을 만족하는지 검사해답 검사(Solution Check) : 원래의 문제가 해결되었는지 검사하고, 해결되지 않았다면 선택절차로 돌아가 과정 반복 3. 그리디 알고리즘 적용을 위한 2가지 조건탐욕적 ..
[Python] cmp_to_key() - 원하는 기준으로 sort() (정렬) 하기
·
Develop/Python
https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰programmers.co.kr 위 문제를 lambda 식으로 풀다가 이 상황에선 이렇게 정렬 저 상황에선 저렇게 정렬하고 싶었다.이러한 함수를 찾다 cmp_to_key() 함수를 찾게 되어 정리해본다. [공식문서]https://docs.python.org/ko/3/howto/sorting.html?highlight=sorting#k..
[Python] re (정규 표현식)
·
Develop/Python
공식 문서https://docs.python.org/ko/3/library/re.html re — 정규식 연산 — Python 3.10.4 문서re — 정규식 연산 소스 코드: Lib/re.py 이 모듈은 Perl에 있는 것과 유사한 정규식 일치 연산을 제공합니다. 패턴과 검색 할 문자열은 모두 유니코드 문자열(str)과 8비트 문자열(bytes)이 될 수 있습니docs.python.org 정규식(RE)은 일치하는 문자열 집합을 지정합니다. 이 모듈의 함수는 특정 문자열이 주어진 정규식과 일치하는지 확인할 수 있도록 합니다.다음 메타문자 $ ( ) * + . ? [ ] \ ^ { } | 를 사용하려면 앞에 역슬래쉬(\)를 붙여 사용합니다. 기본 패턴[abc] : a 또는 b 또는 c[a-f] : a 와 ..
[Python] itertools & 활용
·
Develop/Python
itertools프로그래머스를 하다보면 반복적인 연산을 효율적으로 해야할 경우가 많습니다.이를 단 하나의 패키지로 제공하는 것이 itertools 입니다. import itertools chain(): value1과 value2를 순서대로 연결itertools.chain(value1, value2) count():1부터 n만큼 증가 무한반복itertools.count(1, n) combinations(): 리스트 i에서 원소의 개수가 r개인 조합 추출# itertools.combinations(i, r)c = itertools.combinations('abc', 2)for i in c: print(i) # ('a', 'b')# ('a', 'c')# ('b', 'c') combinations_with..
[Python] Ubuntu에 pyenv 설치
·
Develop/Python
야러 개의 파이썬 버전과 가상환경을 관리하기 위해 Pyenv를 깔아보겠습니다. Pyenv 설치 제일 먼저 설치된 패키지들을 업데이트합니다.sudoaptgetupdatepyenv. sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl pyenv를 설치합니다.$ curl -L https://raw.githubusercont..
[Python] Ubuntu에서 VSCode 설치 및 SSH를 사용하여 서버 원격 접속
·
Develop/Python
Ubuntu VSCode 설치1. apt 업데이트sudoaptgetupdate2.curl sudo apt-get install curl3. Microsoft GPG키 다운sudoshccurlhttps://packages.microsoft.com/keys/microsoft.asc|gpgdearmor>/etc/apt/trusted.gpg.d/microsoft.gpg4. sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'5. 패키지 목록 가져오기$ sudo apt-get..
욱근욱