일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- level3
- Programmers
- 동적계획법
- 같은숫자는싫어
- github
- level 3
- 동빈나
- 2020 KAKAO BLIND RECRUITMENT
- 머신러닝
- DFS/BFS
- level2
- 더 맵게
- pwnable
- 자물쇠와 열쇠
- 프로그래머스
- Python3
- 타겟 넘버
- 여행경로
- level 2
- 개발
- level1
- 전화번호 목록
- vscode
- 문자열압축
- 스택/큐
- themida
- 베스트앨범
- 선형회귀
- 코딩테스트
- Today
- Total
hoon

모든 옷의 수 + 1(안입을 때 경우의수)를 전부 곱하고 아예안입는 경우의 수 1을 빼면 모든 옷에 대한 조합의 수가 나온다. 처음에 안입는 경우를 생각안하고 모든 경우를 구하려고 했지만 (조합모듈을 사용해서) 테스트 케이스 1번은 30개의 옷의 종류가 주어져 시간초과가 나와 실패한다. def solution(clothes): answer = 1 clo = {} for c in clothes: clo[c[1]] = clo.get(c[1],[]) clo[c[1]].append(c[0]) for k in clo: answer *= len(clo[k]) + 1 answer -= 1 return answer

해시를 이용하는 문제이지만 sort를 이용해서 푸는 사람도 있다. sort를 이용하면 접두어가되는 문자열과 접두어를 포함하는 문자가 순서대로 정렬되는 것을 이용한다. 하지만 해쉬를 사용하는 것에 비해 느리다. ## 해쉬 사용 def solution(phone_book): phone_dict = {} for phone in phone_book: phone_dict[phone] = 0 for phone in phone_book: temp = '' for num in phone: temp += num if temp in phone_dict and temp != phone: return False return True ## 정렬 사용 def solution(phone_book): phone_book.sort()..

- 시작지점 설정 def solution(numbers, target): answer = 0 stack = [[numbers[0],0],[-1*numbers[0],0]] #start length = len(numbers) while len(stack) > 0: tmp, idx = stack.pop() idx += 1 if idx < length: stack.append([tmp+numbers[idx],idx]) stack.append([tmp-numbers[idx],idx]) else: if tmp == target: answer += 1 return answer BFS를 사용하려면 queue를 이용하고 deque.popleft나 pop(0) 사용해야됨