[Python] 프로젝트 패키지 관리하기(pip freeze)
·
✏️ Study/🐍 Python
📍목표- Python 프로젝트에서 패키지 관리하는 방법 알아보기 📍Python 프로젝트에서 의존성 관리 방법Python에도 Node.js의 npm 처럼 pip 라는 패키지 매니저가 존재한다. pip 명령어를 통해 외부 패키지를 설치하고 삭제할 수 있다. 그런데, 가상환경에서 Python 프로젝트를 실행하는 경우, 패키지 정보가 담기는 가상환경(일반적으로 /venv 폴더) 폴더의 /lib 은 gitignore에 의해 공유되지 않는다. 그렇다면 Python 에서는 Node.js 진영의 package.json 처럼 의존성을 명시하는 문서가 없을까? 📍현재 프로젝트의 모든 패키지 목록 추출하기찾아보니 pip freeze 명령어를 통해 현재 프로젝트의 의존성 리스트(버전 포함)를 터미널에 출력할 수 있었다-..
[Python] virtualenv 모듈로 가상환경 사용하기
·
💭 Language/🐍 Python
📍가상환경을 사용하는 이유- 여러 버전의 파이썬을 사용하거나, 프로젝트 별로 패키지를 설치하고 싶을 때- 가상환경에서 애플리케이션을 개발하면 특정 패키지를 시스템에 전역으로 설치하지 않아도 된다 => 가상환경 디렉토리 하위에 pip install로 설치한 패키지들이 설치되기 때문 📍가상 환경 생성Python 표준 라이브러리의 venv 모듈을 사용한다 가상환경 폴더(주로 venv 라는 이름 사용)의 구성요소- /lib: 파이썬 인터프리터가 설치된 폴더- /bin: 가상환경 내에서 상호작용(가상환경 활성화/비활성화)에 필요한 파일이 저장된 폴더python3 -m venv [사용할 가상환경 이름] 📍가상 환경 활성화source [가상환경 이름]/bin/activate- 활성화에 성공하면 가상환경 폴더명이..
[Python] reduce 사용하기
·
💭 Language/🐍 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)
·
✏️ Study/🐍 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)
·
✏️ Study/🐍 Python
이것이 취업을 위한 코딩 테스트다 with 파이썬 📍그리디(Greedy 란?)✅현재 상황에서 당장 좋은 것만 고르는 방법 기준에 따라 좋은 것을 선택하는 알고리즘이므로, 문제에서- 가장 큰 순서대로- 가장 작은 순서대로같은 기준을 제시해준다 이러한 기준은 정렬 알고리즘으로 만족시킬 수 있으므로, 그리디는 주로 정렬 알고리즘과 짝을 이뤄 출제된다 📍예제1 : 거스름돈✅N원을 거슬러주기 위해 500원, 100원, 50원, 10원 동전으로 거스름돈을 만들어준다고 가정할 때, 사용할 동전의 최소 갯수를 구하라 ✅가장 큰 화폐 단위(500원)부터 사용하여 거스름 돈을 만든다- 동전을 가장 적게 사용하려면, 500원짜리 동전을 최대한 사용하면 된다 ✅코드n = int(input())count = 0coin_ty..
[Python] print(*list) - list 언패킹해서 출력하기
·
✏️ Study/🐍 Python
📍print 안의 * 의 의미는?- 백준 10810 공 넣기 문제 N, M = map(int, input().split())basket = [0 for _ in range(N)]for i in range(M): x, y, z = map(int, input().split()) for j in range(x - 1, y): basket[j] = zprint(basket) # [1, 2, 1, 1, 0]print(*basket) # 1 2 1 1 10 - 리스트 앞에 * 를 붙이면 리스트를 언패킹해서 출력할 수 있게 해준다- join을 따로 쓸 필요가 없어서 간편하다 📍추가 예시- 백준 10812 바구니 순서 바꾸기 N, M = map(int, input().split())bas..
[Python] 3개의 수 한꺼번에 비교하기
·
✏️ Study/🐍 Python
📍참고https://www.acmicpc.net/problem/5073 5073번: 삼각형과 세 변각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오.www.acmicpc.net 📍코드아래처럼 3가지 경우를 한꺼번에 비교하는게 가능하다x == y == z == 0 이렇게 - 또한, 1 while True: x, y, z = map(int, input().split()) if x == y == z == 0: break nums = sorted([x, y, z], reverse=True) if nums[0] >= nums[1] + nums[2]: print("Invalid") elif x ==..
[Python] boolean을 int로 변환하기
·
✏️ Study/🐍 Python
📍백준 13458 https://www.acmicpc.net/problem/13458 13458번: 시험 감독첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)www.acmicpc.net boolean을 int로 변환하여 사용할 수 있다boolean값에 int를 씌우면- true => 1- false => 0 으로 변환된다 N = int(input())data = list(map(int, input().split()))B, C = map(int, input().split())answer = len(data)f..