[Python] 프로젝트 패키지 관리하기(pip freeze)
·
🤓 기술 학습 & 공부 기록/Python
📍목표- Python 프로젝트에서 패키지 관리하는 방법 알아보기 📍Python 프로젝트에서 의존성 관리 방법Python에도 Node.js의 npm 처럼 pip 라는 패키지 매니저가 존재한다. pip 명령어를 통해 외부 패키지를 설치하고 삭제할 수 있다. 그런데, 가상환경에서 Python 프로젝트를 실행하는 경우, 패키지 정보가 담기는 가상환경(일반적으로 /venv 폴더) 폴더의 /lib 은 gitignore에 의해 공유되지 않는다. 그렇다면 Python 에서는 Node.js 진영의 package.json 처럼 의존성을 명시하는 문서가 없을까? 📍현재 프로젝트의 모든 패키지 목록 추출하기찾아보니 pip freeze 명령어를 통해 현재 프로젝트의 의존성 리스트(버전 포함)를 터미널에 출력할 수 있었다-..
[Python] virtualenv 모듈로 가상환경 사용하기
·
🤓 기술 학습 & 공부 기록/Python
📍가상환경을 사용하는 이유- 여러 버전의 파이썬을 사용하거나, 프로젝트 별로 패키지를 설치하고 싶을 때- 가상환경에서 애플리케이션을 개발하면 특정 패키지를 시스템에 전역으로 설치하지 않아도 된다=> 가상환경 디렉토리 하위에 pip install로 설치한 패키지들이 설치되기 때문📍가상 환경 생성Python 표준 라이브러리의 venv 모듈을 사용한다 가상환경 폴더(주로 venv 라는 이름 사용)의 구성요소- /lib: 파이썬 인터프리터가 설치된 폴더- /bin: 가상환경 내에서 상호작용(가상환경 활성화/비활성화)에 필요한 파일이 저장된 폴더python3 -m venv [사용할 가상환경 이름] 📍가상 환경 활성화source [가상환경 이름]/bin/activate# 활성화에 성공하면 가상환경 폴더명이 프..
[Python] reduce 사용하기
·
🤓 기술 학습 & 공부 기록/Python
📍목표- Python에서 reduce 사용하기 📍functools.reduce예를 들어, 어떤 각각의 경우의 수를 나타내는 [1, 2, 3, 4, 5] 리스트가 있다고 할 때, 모든 경우의 수를 구하기 위해 이 리스트의 모든 원소를 곱하는 결과를 반환받고 싶다면 어떻게 할까? for loop 를 사용할 수도 있지만, JavaScript의 reduce 같은 메서드를 사용해 결과를 깔끔하게 반환할 수도 있을 것이다. Python에도 reduce 함수가 존재한다. functools 패키지에서 import 해오면 된다from functools import reduce 기본 문법은 아래와 같다reduce(function, iterable[, initializer]) - function: 2개의 인자를 받아(리..
[Python] 그리디 (2)
·
🤓 기술 학습 & 공부 기록/Python
이것이 취업을 위한 코딩 테스트다 with 파이썬 📍예제3 : 숫자 카드 게임✅N * M 크기의 2차원 배열에서 각 row에서는 가장 작으면서 전체적인 최댓값을 구하라 1 2차원 배열의 원소는 모두 1만 이하의 자연수 ✅코드n, m = map(int, input().split())board = [list(map(int, input().split())) for _ in range(n)]max_num = 0for row in board: max_num = max(max_num, min(row))print(max_num)"""입력3 33 1 24 1 42 2 2출력2입력2 47 3 1 83 3 3 4출력3""" 📍예제4 : 1이 될 때까지✅ 2 - N에서 1 빼기- N을 K로 나누기 (N이 K의 배수..
[Python] 그리디 (1)
·
🤓 기술 학습 & 공부 기록/Python
이것이 취업을 위한 코딩 테스트다 with 파이썬 📍그리디(Greedy 란?)✅현재 상황에서 당장 좋은 것만 고르는 방법 기준에 따라 좋은 것을 선택하는 알고리즘이므로, 문제에서- 가장 큰 순서대로- 가장 작은 순서대로같은 기준을 제시해준다 이러한 기준은 정렬 알고리즘으로 만족시킬 수 있으므로, 그리디는 주로 정렬 알고리즘과 짝을 이뤄 출제된다 📍예제1 : 거스름돈✅N원을 거슬러주기 위해 500원, 100원, 50원, 10원 동전으로 거스름돈을 만들어준다고 가정할 때, 사용할 동전의 최소 갯수를 구하라 ✅가장 큰 화폐 단위(500원)부터 사용하여 거스름 돈을 만든다- 동전을 가장 적게 사용하려면, 500원짜리 동전을 최대한 사용하면 된다 ✅코드n = int(input())count = 0coin_ty..
Python에서 lambda로 배열을 특정 기준으로 정렬하기
·
🤓 기술 학습 & 공부 기록/Python
📍문제 링크 https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 📍알고리즘 분류 - 그리디 📍문제 풀이 대문자로 구성된 문자열 리스트가 주어질 때, 문자열의 각 알파벳에 0 ~ 9 까지의 수를 하나 할당해서 숫자로 변환하고, 이를 모두 더한 최댓값을 구하라 자릿수가 높고 > 많이 등장 하는 순서로 9, 8, 7 .. 을 배정하면 된다 딕셔너리를 만들고, 문자열을 하나씩 순회하면서 해당 알파벳에 자릿수를 더한다 - 예를 들어 ABC 문자열이 있..