https://m.blog.naver.com/PostView.nhn?blogId=rkdwnsdud555&logNo=220828040636&proxyReferer=https%3A%2F%2Fwww.google.com%2F def monte(repeat=1000000, radius=1000): area_circle = radius ** 2 in_circle = 0 count = 0 import random import timeit while True: start = timeit.default_timer() for _ in range(repeat): x, y = random.randrange(0, radius), random.randrange(0, radius) if x*x + y*y
-정규식으로 코드가 간단하지만 성능이 느리다. import re def is_bracket(s, p=""): while s != p: p = s s = re.sub(r"[\(][^\(\)]*[\)]", "", s) return not ("(" in s or ")" in s) -스택을 이용한 빠른 방법def is_bracket(s): sk = [] for c in s: if c == "(": sk.append(c) elif c == ")": if bool(sk): sk.pop() else: return False return not bool(sk)
행렬의 곱셈을 3중 포문으로 할수도 있다. 좀더 간단하게 하려면 set(*b) 로 행, 열을 바꾸어서도 가능하다. def solution(a, b): r = [] for y in range((len(a))): g = [] for z in range(len(b[0])): t = [] for x in range(len(a[0])): t.append(a[y][x] * b[x][z]) g.append(sum(t)) r.append(g) return r
퀵 정렬(Quick Sort)28 Sep 2017 | algorithm이번 글에서는 퀵 정렬(Quick Sort) 알고리즘에 대해 살펴보도록 하겠습니다. 이 글은 고려대 김선욱 교수님 강의와 위키피디아를 정리하였음을 먼저 밝힙니다. 파이썬 코드 구현은 이곳을 참고하였습니다. 그럼 시작하겠습니다.개념퀵 정렬은 분할정복(divide and conquer) 방식으로 작동합니다. 그 절차는 다음과 같습니다.리스트 가운데서 하나의 원소를 고릅니다. 이를 피벗(pivot)이라 합니다.피벗 앞에는 피벗보다 작은 값, 뒤에는 큰 값이 오도록 하여 리스트를 둘로 분할합니다.분할된 두 개 리스트 각각에 재귀적으로 이 과정을 반복합니다.예시다음과 같은 리스트를 정렬해보겠습니다.[5, 3, 7, 6, 2, 1, 4]첫번째 값..
[폰트사이즈18 고딕 진하게] 폰트 사이즈 12 고딕 폰트 사이즈 12 고딕 폰트 사이즈 12 고딕 폰트 사이즈 12 고딕 폰트 사이즈 12 고딕 폰트 사이즈 12 고딕 def conv(n, base, exp="0123456789ABCDEF", result=""): while True: n, r = divmod(n, base) result = exp[r] + result if not n: break return result
단방향 linked list 를 이용해서 queue 를 구현해 보자 매직 키워드를 사용해서 for, enumerate, len, slicing, 등등 기능도 구현해 보자 class Node: def __init__(self, data, next=None): self.data, self.next = data, next class Queue: def __init__(self): self.head = None self.size = 0 def is_empty(self): return not bool(self.size) def enqueue(self, data): if self.is_empty(): self.head = Node(data) else: cur_node = self.head while cur_node..
[폰트사이즈18 고딕 진하게] 폰트 사이즈 12 고딕 폰트 사이즈 12 고딕 폰트 사이즈 12 고딕 폰트 사이즈 12 고딕 폰트 사이즈 12 고딕 폰트 사이즈 12 고딕 리팩토링 후 class Node: def __init__(self, data=None, prev=None, next=None): self.data, self.prev, self.next = data, prev, next class DList: def __init__(self): self.head = Node() self.tail = Node(prev=self.head) self.head.next = self.tail self.size = 0 def is_empty(self): return not bool(self.size) def ins..
[가위바위보 승패] 첫줄에는 a 의 가위, 바위, 보 각각 낼 가중치를 두번째 줄는 b 의 가위, 바위, 보 각각 낼 가중치를 세번째줄에는 a, b가 가위바위보 를 몇번 할것 인가를 모든 입력은 정수로 입력 받는다. (가중치는 상대적인 비례숫자이다, 2 4 1 이면 7번 하면 평균적으로 가위가 2, 바위가 4, 보가 1번 나올 수 있다. [Example 1]input:4 2 11 2 410000 output:[4271, 3271, 2458] [Example 2]0 1 10 1 01000 output:[496, 0, 504] def get_vic(hands): if (hands[0] == 0 and hands[1] == 2) or hands[0] > hands[1]: return 0 elif hands[0..
[단어 폭탄] 첫줄은 문자열을 입력하고 두번째 줄은 폭탄이 되는 문자열을 입력한다. 폭탄이 되는 문자열은 폭파되면서 제거 되고 더이상 폭탄이 존재하지 않을 때까지 계속 터진다 모든 폭탄이 터지고 난 이후 문자열을 출력하고 이때 아무 문자열도 없을 때는 'FRULA' 라고 [Example] inputmirkovC4nizCC44C4 outputmirkovniz 출처: https://www.acmicpc.net/problem/9935 def baam(chars, bombs): size_chars = len(chars) size_bombs = len(bombs) stack = [] i = 0 while i < size_chars: stack.append(chars[i]) size_stack = len(stack..
- Total
- Today
- Yesterday
- 플러스친구 자동응답
- 이미지 비교
- chatbot
- 면접정답
- 엑셀 비교
- gitignore
- 모바일 스킨 적용
- 파이썬 프로그래밍
- Python
- 파이썬
- 면접답변
- 문서 비교
- django chatbot
- 문과 코딩
- gitlab
- 파이썬 입문
- 장고 플러스친구 자동응답
- 파이썬 강좌
- GIT
- Tistory
- virtualenv
- wsgi
- 모바일 테마 적용
- PuTTYGen
- 파이썬 독학
- 장고 카톡 자동응답
- django
- 장고
- pycrypto
- admin.py
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |