본문 바로가기

전체 글

(148)
mp3 파일 다루기 - S3 업로드&객체 가져오기 (2) 지난번에 하던거 이어서! # 모든 댓글 변환&업로드 일단 한 게시글의 comment를 모두 가져오자. class Mp3Upload(APIView): # 댓글 전체 조회 def post(self, request, post_pk, format=None): comments = Comment.objects.filter(post_id=post_pk) comment_list = [{ "comment_id": comment.id, "speed": comment.author_voice.speed, "pitch": comment.author_voice.pitch, "type": comment.author_voice.type, "content": comment.content } for comment in comments]..
mp3 파일 다루기 - S3 업로드&객체 가져오기 (1) 문제..?는 아니지만 프로젝트에서 mp3 파일을 다루는 것에 대해 의견차이가 생겼다. 일단 GoogleTTS를 사용해서 텍스트를 Voice Information으로 바꾸기까지는 성공했다. 이것을 위해 모델도 좀 바꿔줬다...댓글 작성자의 voice information을 프론트로 넘기도록! 댓글 하나를 변환하거나, voice 정보를 수정할 때는 따로 저장을 하지 않아도 된다. 하지만 댓글 모두를 모아듣는 것은 저장을 한 후 들려주기를 원한다. 여기에 가능하면 배경음악까지..? 아마 외부 라이브러리를 추가로 설치해야 하고...저장은 s3를 연결해서 따로 수행해야 할 것 같다..ㅜ 가능할까?? # S3 버킷 + 유저 설정 일단 mp3파일을 저장할 S3 버킷을 생성한다. 버킷은 이미지파일 다룰 때 만들었던 것..
[Python] 그리디 # 1. 그리디 알고리즘 현재 상태에서 보는 선택지 중 최선의 선택지가 최종적으로 최선이라고 가정하는 알고리즘. 수행과정 해 선택 : 현재 상태에서 가장 최선이라고 생각되는 해를 선택한다. 적절성 검사 : 현재 선택한 해가 전체 문제의 제약 조건에 벗어나지 않는지 검사한다. 해 검사 : 현재까지 선택한 해 집합이 전체 문제를 해결할 수 있는지 검사한다. 전체 문제를 해결하지 못한다면 처음으로 돌아가 같은 과정을 반복한다. DP보다 구현이 쉽고 시간복잡도가 우수하다. 그러나 항상 최적의 해를 보장하지 못하므로 논리 유무를 살피는 것이 중요한 문제. https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤..
[Django] UML Diagram 자동생성 Django에서 모델 및 함수를 완성했다면 이를 바탕으로 UML Diagram을 자동으로 만들 수 있다 ~^^^^^ https://simpleit.rocks/python/django/generate-uml-class-diagrams-from-django-models/ Generate UML class diagrams from django models How to generate class diagrams pictures in a Django project from console simpleit.rocks 그대로 따라하면 됨. 하하
[Python] 프로그래머스 - 정수를 나선형으로 배치하기 갑자기 난이도가 확 올라가네... https://school.programmers.co.kr/learn/courses/30/lessons/181832 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 구현 def solution(n): answer = [[0]*n for _ in range(n)] #우,하,좌,상 -> 나선형으로 해야 하므로 dx=[0,1,0,-1] dy=[1,0,-1,0] x,y=0,0 answer[x][y]=1 # 처음 시작 1로 초기화 k=2 while k=n or ny>=n or nx
[Python] 프로그래머스 - 안전지대 0단계 문제를 푸는데 꽤 어려운 문제가 나왔다! https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 내 풀이 def solution(board): answer = 0 dx = [-1, 1, 0 , 0, 1, 1, -1, -1] dy = [0, 0, -1, 1, -1, 1, 1, -1] for i in range(len(board)): for j in range(len(board)): if board[i][j]==1: for k in range..
[Python] ECC 3주차 정리 - 탐색 # 1. 깊이 우선 탐색(DFS) 그래프 완전 탐색 기법 중 하나. 그래프의 시작 노드에서 출발하여 탐색할 한 쪽 분기를 정하여 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동한다. 재귀 함수로 구현하며 스택 자료구조를 이용한다. 재귀 함수를 이용하는 경우 스택 오버플로에 유의해야 한다. 시간복잡도는 O(V+E). (V: 노드 수, E: 에지 수) DFS에서는 한 번 방문한 노드를 다시 방문하면 안 되므로 노드 방문 여부를 체크할 리스트가 필요하다.(인접 리스트) 또한 DFS의 탐색 방식은 후입선출 특성을 가져 스택을 사용한다. 스택의 성질을 갖는 재귀 함수로 많이 구현한다 DFS 핵심 이론 DFS를 시작할 노드를 정한 후 사용할 자료구조를 초기화 한다. DFS를 위해 초기에 인접 리스트로 그래프 표..
[Python] ECC 2주차 정리 - 정렬 # 1. 버블 정렬 두 인접한 데이터의 크기를 비교해 정렬하는 방법 O(n^2)의 시간 복잡도로 다른 정렬 알고리즘보다 느린 편이다. https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net N = int(input()) A = [0]*N for i in range(N): A[i] = int(input()) for i in range(N-1): for j in range(N-1-i): if A[j] > A[j+1]: A[j], A[j+1] = A[j+1], A..