일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- HTTP 완벽 가이드
- utils
- Gunicorn
- TDD
- Bruteforce
- algorithm
- ws
- Unit Testing
- postreSQL
- AWS
- ORM
- combinations
- stack&que
- Programmers
- stateful
- Query
- 백준
- stateless
- Python
- SQL
- was
- Q objects
- greedy
- Django
- pytest
- codecov
- Git
- dictionary
- permutations
- Stack
- Today
- Total
목록알고리즘 (32)
해피 코딩!
문제 링크 lst = [] for i in range(int(input())): age, name = input().split(' ') lst.append([int(age), name, i]) for i in sorted(lst, key = lambda x:(x[0], x[2])): print(i[0], i[1]) python은 내장 정렬 라이브러리로 list_data_type_var.sort()와 sorted(iterable_data_type_var)를 지원하며 key를 통해 정렬하는 순서를 설정할 수 있다. .sort(): 참조하는 리스트의 메모리 값 자체가 정렬이 된다. 리스트 데이터 타입에서만 지원 sorted(): 정렬된 값을 돌려준다. iterable 한 데이터 타입 자체를 지원..
n = int(input()) lst =[] var = 0 while n > var: m = var for i in str(m): m+=int(i) if m == n: lst.append(var) var+=1 if lst: print(min(lst)) else: print(0) 생성자가 없는 경우에는 0을 출력한다. 여러개인 경우 가장 작은 생성자를 출력한다.
문제 링크 # 해결 코드 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 함수를 완..
조합 조합이란 n개의 원소를 사용해서 순서의 관계없이 r개의 배열로 나타내는 것을 말한다. 조합은 순서가 없어 원소의 종류가 같으면 다같은 배열로 나타낸다. combinations python combinations 공식문서 def combinations(iterable, r): # combinations('ABCD', 2) --> AB AC AD BC BD CD # combinations(range(4), 3) --> 012 013 023 123 pool = tuple(iterable) n = len(pool) if r > n: return indices = list(range(r)) yield tuple(pool[i] for i in indices) while True: for i in..