일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 참새과
- 한국의 새
- python3
- 비둘기과
- 딥러닝공부
- SimpleCraft
- Python
- 백로과
- django
- Birthday paradox
- 비둘기목
- IBK기업은행 인턴
- 계수정렬
- 한국의새
- AI역량평가
- 참새목
- 가마우지과
- AI전략게임
- 딥러닝 공부
- 기러기목
- 직박구리과
- structured_array
- 맑은소리 스피치학원
- ADsP
- 딱다구리과
- 솔딱새과
- 흰날개해오라기
- 오리과
- 생일문제
- keras
- Today
- Total
목록프로그래밍/코딩테스트 공부 (26)
진박사의 일상
from collections import defaultdict def solution(clothes): answer = 1 kinds_of_clothes = defaultdict(int) for cloth in clothes: kinds_of_clothes[cloth[1]] += 1 for i in [v for v in kinds_of_clothes.values()]: answer *= (i+1) return answer-1 10분컷~ 이제 이정도 해시 문제는 쉽게 풀듯
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분쯤 걸린듯 끙.. 이래서 언제 ㅠ
문제 : 문자열을 N개 단위로 잘라 반복된 시퀀스와 그 반복 횟수로 나타내 줄이는 압축을 할 때 최대로 압축한 문자열의 길이는? def solution(s): answer = 0 if len(s) == 1: return 1 half_l = len(s)//2 # 8 -> 4 for size in range(1,half_l+1): # 1-4 #split size word = "" count = 0 for start in range(0,len(s),size): # size=1일때 0-7, 2일때 0-6 now_seq = s[start:start+size] #현재 분할 next_seq = s[start+size:start+size*2] #다음 분할 before_seq = [] #이전 분할 if start-siz..