일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- stateful
- SQL
- ORM
- Q objects
- HTTP 완벽 가이드
- Unit Testing
- Stack
- greedy
- permutations
- was
- utils
- Gunicorn
- ws
- stateless
- 백준
- TDD
- Git
- algorithm
- AWS
- dictionary
- Programmers
- pytest
- Query
- codecov
- Bruteforce
- Python
- postreSQL
- stack&que
- combinations
- Django
- Today
- Total
목록greedy (5)
해피 코딩!
문제 링크 # 해결 코드 def solution(people, limit): people.sort(reverse=True) answer= 0 lst_cnt = len(people)-1 while answer
문제 링크 import sys def solution(lst): lst.sort() length = len(lst) max_w = 0 for index, rope in enumerate(lst): w = rope *(length-index) lst[index] = w lst = sorted(lst) return lst[-1] limit = int(sys.stdin.readline()) lst = [0] * limit for index in range(limit): lst[index]= (int(sys.stdin.readline())) print(solution(lst)) 문제에서 입력에 대하여 sys.stdin.readlint()을 사용하였을 때와 input()을 사용하였을 때 속도의 차이가 현저하게 났..
문제 링크 def solution(lst): cnt = 1 lst.sort(key = lambda x:(x[1], x[0])) end_time = lst[0][1] for i in range(1, len(lst)): if lst[i][0] >= end_time: cnt+=1 end_time = lst[i][1] return cnt lst = [] limit = int(input()) for _ in range(limit): lst.append(list(map(int, input().split(' ')))) print(solution(lst)) 탐욕 알고리즘의 쉬운 접근 방식이 아직 숙달되지 않은 것 같다. 문제를 너무 어렵게 생각하는 경향이 있으며, 다른 사람의 코드를 보았을 때 문제를 해..
def coin_0(wallet, value): cnt = 0 for index, data in enumerate(wallet): if data
link def solution(number, k): answer = [] for i in number: while answer and answer[-1] 0: answer.pop() k-=1 answer.append(i) while k>0: k-=1 answer.pop() return ''.join(answer) 문제를 풀면서 기존의 코드는 시간 초과가 발생하게 되었고 이는 그리디 알고리즘의 최선의 수를 생각하지 못한 이유였다. 결국 다른이들의 풀이를 찾아보게 되었고 이를 복기하기 위해 코드를 다시 설명한다. 문제에서 요구하는 것은 number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완..