python 28

[Python] venv 사용법

venv는 Python의 가상 환경을 만들어 주는 모듈입니다. python 공식 문서에서는 아래와 같이 venv에 대해 설명합니다. venv에 생성된 각 가상 환경은 고유한 파이썬 바이너리(이 환경을 만드는 데 사용된 바이너리 버전과 일치함)를 가지며 자신의 사이트 디렉터리에 독립적으로 설치된 파이썬 패키지 집합을 가질 수 있습니다. 즉, venv를 통해 설치된 가상 환경은 전역 site-packages(Python을 설치할 때 생성된 site-packages 디렉터리)에 독립적인 site-packages를 가집니다. 이를 통해 가상 환경을 사용하면 독립적으로 패키지를 관리할 수 있는 장점이 있으며, 프로젝트 별로 가상 환경을 만들어 작업을 진행한다면 프로젝트 간의 패키지 버전 충돌을 사전에 방지할 수 ..

Programming/Python 2021.08.03

[Programmers] 다단계 칫솔 판매(파이썬, Python)

https://programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 이 문제는 Programmers의 2021 Dev-Matching: 웹 백엔드 개발자(상반기) 문제집에 있는 문제로 Level 3에 해당되는 문제입니다. 해당 문제는 조직원, 각 조직원 별 추천인, 판매 직원, 각 판매에 대한 판매액이 입력 값으로 주어지며 모든 조직원의 수익을 계산하는 것이 목표입니다. 접근 방식 문제에 명시되어 있는 조건에 따라 구현을 ..

PS/Python 2021.07.24

[Programmers] 행렬 테두리 회전하기(파이썬, Python)

https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 해당 문제는 Programmers의 2021 Dev-Matching: 웹 백엔드 개발자(상반기) 문제집에 있는 문제로 Level 2에 해당되는 문제입니다. 해당 문제는 queries에 직사각형 범위의 좌표가 주어지면 범위의 테두리에 있는 숫자들을 시계방향으로 한 칸씩 회전시키며 회전시키는 각 회차마다 가장 작은 수들을 구하는 게 목표입니다. 접..

PS/Python 2021.07.18

[Programmers] 로또의 최고 순위와 최저 순위 (파이썬, Python)

https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 해당 문제는 Programmers의 2021 Dev-Matching: 웹 백엔드 개발자(상반기) 문제집에 있는 문제로 Level 1에 해당되는 문제입니다. 해당 문제에서는 입력 값으로 구매한 로또 번호(단, 몇몇 번호는 지워진 상태로 입력될 수 있음)와 당첨 번호가 주어지고 최대 등수와 최소 등수를 구하는 게 목표입..

PS/Python 2021.07.18

[백준] 14891 - 톱니바퀴 (파이썬, Python)

https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net 해당 문제는 구현 문제입니다. 문제의 목표는 k번 회전한 후 각 톱니바퀴의 12시 방향에 있는 극에 따라 점수를 계산하고 점수의 합을 구하는 것입니다. 톱니바퀴가 회전하는 경우는 두 가지로 나뉩니다. 1. 톱니바퀴를 직접 회전시킨다. - 각 회차마다 회전시키는 톱니바퀴가 여기에 해당됩니다. 2. 옆 톱니바퀴에 의해서 회전된다. - 인접한 톱니바퀴가 회전을 한다면 인접 부분의 극을 비교하여 회..

PS/Python 2021.07.08

[백준] 2374 - 같은 수로 만들기 (파이썬, Python)

https://www.acmicpc.net/problem/2374 2374번: 같은 수로 만들기 n(1 ≤ n ≤ 1,000)개의 자연수 A[1], A[2], A[3], …, A[n]이 있다. 이 자연수에 Add(i)라는 연산을 하면, A[i]가 1만큼 증가한다. 이때, A[i]만 증가하는 것이 아니고, A[i]의 좌우로 인접한 같은 수의 그룹이 한 www.acmicpc.net 해당 문제는 그리디 알고리즘으로 해결하는 문제입니다. 문제에는 특별한 Add 연산이 소개되며, 이 문제의 목표는 주어진 모든 수를 같게 만들기 위한 최소한의 Add 연산 회수를 구하는 것입니다. Add(i) 연산은 i번째 수와 주변 같은 숫자를 가지는 그룹의 수들을 모두 1씩 증가시키는 연산입니다. Add 연산을 최소로 하여 모든..

PS/Python 2021.07.06

[백준] 19238 - 스타트 택시 (파이썬, Python)

https://www.acmicpc.net/problem/19238 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net 해당 문제는 그래프 문제입니다. 문제의 목표는 주어진 모두 승객들을 목적지까지 이동시킨 후 남아 있는 연료를 구하는 것입니다. 단, 택시가 이동하는 중 연료가 바닥이 나거나 승객을 목적지까지 이동시킬 수 없다면 -1을 출력합니다. 이 문제는 두 가지 중요한 조건이 있다고 생각합니다. 조건 1. 다음에 태울 승객을 정할 때는 최단 거리에 있는 승객을 태운다. ..

PS/Python 2021.06.13

[백준] 14502 - 연구소(파이썬, Python)

https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 이 문제는 3개의 벽을 세우고 바이러스가 확산된 후 남아 있는 안전 영역을 계산하는 문제입니다. 저는 이 문제를 풀 때 새로운 벽의 위치를 선정하는 방법에 대한 많은 고민을 했습니다. 결론적으로 기발한 방법은 생각하지 못했고 Combination을 이용했습니다. 해당 문제에 대한 저의 접근법은 아래와 같습니다. 접근법 1. 연구소의 빈 곳 중 조합을 이용해서 벽이 세워질 후보 장소 3곳을 선정하고 벽을 세웁니..

PS/Python 2021.05.19