[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] 그리디 (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에서 lambda로 배열을 특정 기준으로 정렬하기
·
✏️ Study/🐍 Python
📍문제 링크 https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 📍알고리즘 분류 - 그리디 📍문제 풀이 대문자로 구성된 문자열 리스트가 주어질 때, 문자열의 각 알파벳에 0 ~ 9 까지의 수를 하나 할당해서 숫자로 변환하고, 이를 모두 더한 최댓값을 구하라 자릿수가 높고 > 많이 등장 하는 순서로 9, 8, 7 .. 을 배정하면 된다 딕셔너리를 만들고, 문자열을 하나씩 순회하면서 해당 알파벳에 자릿수를 더한다 - 예를 들어 ABC 문자열이 있..
[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..
[Python] 최종 원소가 int인 2차원 리스트 만들기
·
✏️ Study/🐍 Python
📍참고https://www.acmicpc.net/problem/9063 9063번: 대지첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다. www.acmicpc.net 📍코드import sysN = int(input())# data = [ [x1, y1], [x2, y2], ... ]data = [list(map(int, sys.stdin.readline().rstrip().split())) for i in range(N)]xs = []ys = []for row in data: x, y = row xs.append(x) y..