일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 참새과
- structured_array
- SimpleCraft
- 한국의 새
- 한국의새
- 솔딱새과
- 백로과
- Python
- 계수정렬
- 기러기목
- 생일문제
- 딱다구리과
- 흰날개해오라기
- Birthday paradox
- 비둘기목
- keras
- django
- AI역량평가
- 직박구리과
- AI전략게임
- python3
- 딥러닝공부
- 가마우지과
- 참새목
- ADsP
- 딥러닝 공부
- 오리과
- IBK기업은행 인턴
- 맑은소리 스피치학원
- 비둘기과
- Today
- Total
목록전체 글 (121)
진박사의 일상
from collections import defaultdict def solution(phone_book): answer = True phone_dic = defaultdict(int) phone_book.sort(key=len) #길이순 정렬 for phone in phone_book: for i in range(1,len(phone)+1): phone_dic[phone[:i]] += 1 for phone in phone_book: if phone_dic[phone] >= 2: return False return answer 생각보다 빠르게 풀어냄. 해시를 이렇게 쓰는구나... 진짜 빠르네
def solution(s): answer = [] i = 0 s = eval( "[" + s[1:len(s)-1] + "]" ) s = sorted(s,key=len) answer.append(list(s[0])[0]) for i in range(1, len(s)): answer.append(list(s[i]-s[i-1])[0]) return answer eval() 함수와 set 자료형을 이해하는데 도움이 되었다.
from collections import defaultdict def solution(triangle): answer = 0 d = defaultdict(int) d[(0, 0)] = triangle[0][0] print(len(triangle)) for i in range(1, len(triangle)): for j in range(len(triangle[i])): left, right = 0, 0 if i != j: #i == j 일때는 right = 0 right = d[(i-1, j)] if j != 0: #j == 0 일때는 left = 0 left = d[(i - 1, j - 1)] d[(i, j)] = max(triangle[i][j] + left, triangle[i][j] + right..
def solution(numbers, target): answer = 0 #2**len(numbers) def dfs(i, sum): if i == len(numbers)-1: return int(sum == target) else: return dfs(i+1, sum+ numbers[i]) + dfs(i+1, sum- numbers[i]) return dfs(-1,0) DFS... 간단한 문제인데도 40분쯤 걸린듯 끙.. 이래서 언제 ㅠ
import time d = [0] * 40 def fibo(x): if x == 1 or x == 2: return 1 else: return fibo(x-1) + fibo(x-2) def fibo_dynamic1(x): #top-down if x == 1 or x == 2: return 1 if d[x] != 0: return d[x] d[x] = fibo_dynamic1(x-1) + fibo_dynamic1(x-2) return d[x] d = [0] * 40 def fibo_dynamic2(x): #bottom-up d[0] = 1 d[1] = 1 for i in range(3, x): d[i] = d[i-1] + d[i-2] return d[x] start = time.time() print(f..
계수 정렬이 사용 가능할 때 계수 정렬과 기본 정렬을 비교해보고 싶어서 테스트 테스트한 문제는 성적 정렬 import time import random str_pool = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" counting_score = 0 default_score = 0 for i in range(7): n = 10**i #계수 정렬 scores = [""] * 100 answer = "" random.seed(0) start = time.time() for _ in range(n): name, score = random.choice(str_pool), random.randint(1,100) scores[score-1] += name + "..