Python 23

PyPi Python package version 관리 방법

회사의 Package를 업로드한 후 Pypi.org 사이트에서 numpy pacakge history를 보다 PRE-RELEASE 란 것이 있어 어떻게 적용하는지, 별도의 방법이 있는 듯 하여 검색하여 알게 된 내용을 정리하겠습니다. numpy Fundamental package for array computing in Python pypi.org PiPy.org를 통해 python package를 업로드 할 때 버전을 지정하는 규칙이 존재합니다. 해당 규칙은 PEP 440에 설명되어 있습니다 PEP 440 – Version Identification and Dependency Specification | peps.python.org In order to maintain better compatibili..

Python 2023.02.08

백준. 최소비용 구하기(Dijkstra)

문제 N개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 M개의 버스가 있다. 우리는 A번째 도시에서 B번째 도시까지 가는데 드는 버스 비용을 최소화 시키려고 한다. A번째 도시에서 B번째 도시까지 가는데 드는 최소비용을 출력하여라. 도시의 번호는 1부터 N까지이다. 입력 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 그리고 그 다음에는 도착지의 도시 번호가 주어지고 또 그 버스 비용이 주어진다. 버스 비용은 0보다 크거나 같고, 100,000보다 작은 정수이다. 그리고 M..

Python 2022.08.24

백준. DFS와 BFS

문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대로 출력하면 된다. ..

Python 2022.08.22

백준. 동전1 (Dynamic Programming)

문제 n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다. 사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다. 입력 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 경우의 수를 출력한다. 경우의 수는 2^31보다 작다. 제출한 정답 n, k = map(int, input().split()) lst_coin_val = [] for i in range(n): coin_val = in..

Python 2022.08.18

백준. 설탕배달 (Dynamic Programming)

문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정..

Python 2022.08.18

파트7. flag OR else

본 문제에서는 자연수 5개가 주어집니다. 숫자를 차례로 곱해 나온 수가 제곱수1가 되면 found를 출력하고 모든 수를 곱해도 제곱수가 나오지 않았다면 not found를 출력하는 코드를 작성해주세요. 예시 1 입력 2 4 2 5 1 출력 found 설명 수를 곱해나가면 2, 8, 16, 80, 80 이 나옵니다. 16은 4를 제곱해 나온 수이므로 이 수는 제곱수입니다. 따라서 found를 출력합니다. 예시 2 입력 5 1 2 3 1 출력 not found 설명 수를 곱해나가면 5, 5, 10, 30, 30 이 나옵니다. 이중 어떤 수도 제곱 수가 아니므로 not found를 출력합니다. 제출한 정답 import math answer = 'not found' val = 1 for i in range(5)..

Python 2022.07.22

파트7. for 문과 if문을 한번에

정수를 담은 리스트 mylist를 입력받아, 이 리스트의 원소 중 짝수인 값만을 제곱해 담은 새 리스트를 리턴하는 solution함수를 완성해주세요. 예를 들어, [3, 2, 6, 7]이 주어진 경우 3은 홀수이므로 무시합니다. 2는 짝수이므로 제곱합니다. 6은 짝수이므로 제곱합니다. 7은 홀수이므로 무시합니다. 따라서 2의 제곱과 6의 제곱을 담은 리스트인 [4, 36]을 리턴해야합니다. 제한 조건 mylist는 길이가 100이하인 배열입니다. mylist의 원소는 1이상 100 이하인 정수입니다. 제출한 정답 def solution(mylist): filter_list = list(filter(lambda x: x%2 == 0, mylist)) answer = list(map(lambda x: x**..

Python 2022.07.22

파트6. 가장 많이 등장하는 알파벳 찾기

이 문제에는 표준 입력으로 문자열, mystr이 주어집니다. mystr에서 가장 많이 등장하는 알파벳만을 사전 순으로 출력하는 코드를 작성해주세요.제한 조건 mystr의 원소는 알파벳 소문자로만 주어집니다. mystr의 길이는 1 이상 100 이하입니다. 예시 inputoutput 'aab' 'a' 'dfdefdgf' 'df' 'bbaa' 'ab' 제출한 정답 / 예측 오답 my_str = input().strip() dict_str = {} set_str = set(my_str) for alpha in set_str: dict_str[alpha] = 0 for alpha in my_str: try: dict_str[alpha] += 1 except: dict_str[alpha] = 1 max_cnt =..

Python 2022.07.22

파트6. 순열과 조합

숫자를 담은 일차원 리스트, mylist에 대해 mylist의 원소로 이루어진 모든 순열을 사전순으로 리턴하는 함수 solution을 완성해주세요.제한 조건 mylist 의 길이는 1 이상 100 이하인 자연수입니다. 예시 mylistoutput [2, 1] [[1, 2], [2, 1]] [1, 2, 3] [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]] 제출한 정답 def solution(mylist): import itertools answer = list(itertools.permutations(sorted(mylist))) return answer 예측 오답 def solution(mylist): def permute(arr):..

Python 2022.07.21

파트6. 2차원 리스트를 1차원 리스트로 만들기

문자열을 담은 이차원 리스트, mylist 가 solution 함수의 파라미터로 주어집니다. solution 함수가 mylist를 일차원 리스트로 만들어 리턴하도록 코드를 작성해주세요.제한 조건 arr의 길이는 1 이상 100 이하인 자연수입니다. arr 원소의 길이는 5를 넘지 않습니다. 예시 inputoutput [[1], [2]] [1, 2] [['A', 'B'], ['X', 'Y'], ['1']] ['A', 'B', 'X' ,'Y', '1'] 제출한 정답 def solution(mylist): answer = [y for x in mylist for y in x ] return answer 예측 오답 def solution(mylist): answer = [] for element in my_li..

Python 2022.07.14