목록Python (89)
규도자 개발 블로그
django project에 contribute할 내용 (url dispatcher에 대한 건) 예전에 관련 작업을 할 때마다 아 이건 django 프로젝트 커뮤니티에 제보를 하던가 혹은 내가 직접 contributor가 돼서 개선 혹은 변경을 해야겠다고 생각한 부분이다. 약 반년 전쯤에도 작업을 하다가 떠올랐던 부분인데 뭔지 까먹어서 잊었던 부분이고 최근에 또 작업하다가 big aha moment를 만나서 다시는 까먹지 않게 여기에나마 기록해두려 한다. 직접적인 개선 방법 및 커뮤니티에 기여자로 참여하는 방법들을 모르니 일단 여기에 기록해둔 뒤에 직접 기고할 계획으로 말이다. 이 생각이 든 건 form을 제공하는 페이지에서 데이터를 수정하고 저장할 때 url을 지정하는 부분을 작업할 때였다. 어떤 fo..
[백준/1978/파이썬(python3)] 소수 찾기 문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 입출력 예 입력출력 4 1 3 5 73 풀이 def prime_list(n): n = n + 1 #추가된 부분 sieve = [True] * n m = int(n ** 0.5) for i in range(2, m + 1): if sieve[i]: for j in range(i+i, n, i): sieve[j] = False return [i for i in range(2, n) if sieve[..
파이썬(Python) 내장함수의 시간복잡도 나는 내장함수는 뭔가 당연히 최적화돼있겠거니 하고 생각없이 쓰곤 한다. 하지만 그런 자세가 프로그램의 효율에 커다란 영향을 끼치지 않나 싶다. 특히 이번에 에라토스테네스의 체를 응용한 문제를 풀고 있는데 정확한 개념을 알기 위해 위키에 쳐보니 다음과 같은 함수가 나왔다. def prime_list(n): # 에라토스테네스의 체 초기화: n개 요소에 True 설정(소수로 간주) sieve = [True] * n # n의 최대 약수가 sqrt(n) 이하이므로 i=sqrt(n)까지 검사 m = int(n ** 0.5) for i in range(2, m + 1): if sieve[i] == True: # i가 소수인 경우 for j in range(i+i, n, i)..
Objective Today, we're building on our knowledge of Arrays by adding another dimension. Check out the Tutorial tab for learning materials and an instructional video!Context Given a 2D Array, :1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 We define an hourglass in to be a subset of values with indices falling in this pattern in 's graphical representation:a b c d e f g T..
[백준/9012/파이썬(python3)] 괄호 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “(()” 는 모두 VPS 가 아닌 문..
[백준/10950/파이썬] A+B - 3 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다.각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 A+B를 출력한다. 입출력 예 입력출력 5 1 1 2 3 3 4 9 8 5 22 5 7 17 7 풀이 count = int(input()) result_list = [] for i in range(count): number_input = input().split() number_input = map(int, number_input) result_list.append(sum(number_input)) f..
[백준/1260/파이썬] DFS와 BFS 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부..
윈도우(windows)에서 파이썬(python) 2.x버전과 3.x버전 동시에 쓰기 나는 파이썬을 시작한지 얼마 되지 않아서 3.x버전만 다뤄왔었다. 하지만 리눅스 환경에서 기본값으로 깔려 있는 파이썬은 대체로 2.x버전이었다. 리눅스환경에서야 symlink로 각 명령어에 대한 구분이 가능하지만 윈도우같은 경우에 파이썬3버전과 2버전을 동시에 깔면 무조건 python이라는 명령어에 python 2.x대가 붙는 현상이 있다. 나의 경우에는 python3.x로 작업을 하다가 node.js를 깔면서 위의 현상을 겪었는데 node.js의 npm이 python2.7을 사용하고 있기 때문이다. node.js를 깔기 전에 콘솔 창에 python -V를 치면 3.7.x가 떴는데 이제는 2.7.15가 뜬다. 환경변수 설..
CentOS로 Python3.x쓰기 및 yum에러 해결 CentOS에 기본적으로 설치돼있는 파이썬의 버전은 2.x대이다. 하지만 파이썬은 2버전과 3버전으로 나뉘어져있는 데다가 2버전은 곧 지원이 끊긴다. 심지어 아주 기본적인 문법에서부터 차이가 있어서 2.x에서 작성된 소스를 3.x으로 돌리면 제대로 돌아가지 않는 경우가 왕왕 있다. 하지만 파이썬 3.x가 필요하다면 어떻게든 설치해서 사용해야 한다. 굳이 CentOS뿐만 아니라 Fedora, Redhat계열 리눅스에서 통용되는 방법이다. ius Repository를 yum에 추가한다. $ yum install -y https://centos7.iuscommunity.org/ius-release.rpm python3로 시작하는 라이브러리들을 확인한다. ..