본문 바로가기

전체 글

(148)
[Python] 그리디 문제 풀이 정리(2) https://www.acmicpc.net/problem/1339# 정답 풀이from collections import dequeN=int(input())A=[]num={}for _ in range(N): A.append(input())for i in A: # 각 문자열에서 for j in range(len(i)): # 문자열 알파벳 조사 k = 10**(len(i)-j-1) # 알파벳 자릿수 if i[j] in num: # dict에 있으면 더하고 num[i[j]]+=k else: # 없으면 추가 num[i[j]]=ksorted_dict = sorted(num.items(), key = lambda item: ite..
수정 + 댓글 필터링 # 댓글 필터링인터넷에 올라온 나쁜말 리스트를 가져왔다. 요새 AI로 알아서 걸러주는 여러 API도 많은 것 같긴 한데...시간이 없어서 간단하게 구현!import pandas as pdf = open(os.path.join(BASE_DIR, 'fword_list.txt'), "r", encoding='UTF8')fword_list = f.read().splitlines() 경로는 이전에 내가 BASE_DIR을 설정해놔서 여기랑 파일명을 합쳐 설정해주면 된다. from dislodged_project.settings.base import fword_listprint(fword_list[-1])그리고 fword_list를 불러온 후 잘 되나 확인한다. # posts/views.pyfrom dislodged..
[Python] 그리디 문제 풀이 정리 https://www.acmicpc.net/problem/14916# 내 풀이n = int(input())if n%2==0: if (n%5)%2!=1: t = n//5 n%=5 k = n//2 # k는 2원 개수 n%=2 else: t = (n-5)//5 n = (n-5)%5 + 5 k = n//2 # k는 2원 개수 n%=2elif n>3: if n==5: n%=5 t = 1 k=0 else: n-=5 t = 1 k = n//2 # k는 2원 개수 n%=2 while k>=5: ..
[Python] 정수론 # 7-1. 소수 구하기전에 정리했지만 소수를 구하는 대표적인 판별법으로 에라토스테네스의 체가 있다.주어진 범위의 수 리스트를 생성한다.1은 소수가 아니므로 삭제 하고, 리스트 2부터 시작한다.선택한 수의 배수를 모두 삭제한다.이미 지운 수는 다시 지우지 않고, 지워지지 않은 수를 선택하며 리스트의 끝까지 반봇한다.이중 for문이지만 실제 시간 복잡도는 배수 삭제 연산으로 바깥쪽 for문을 생략하는 경우가 많아 O(Nlog(logN))이다.또한 N = a*b일때, a와 b는 N의 제곱근보다 클 수 없으므로 탐색은 N의 제곱근까지만 탐색한다. https://www.acmicpc.net/problem/1929import mathM, N = map(int, input().split())A = [0]*(N+1)..
mp3 파일 다루기 - S3 업로드&객체 가져오기 (3) + 좋아요 기능 전에 만든 코드 리팩토링하고~ 멘토링을 진행하며 보이스 추천 기능을 위한 데이터 확보를 위해 댓글(보이스) 추천 기능이 있으면 좋을 것 같다고 하셨다. 그것까지 수정하기. # 리팩토링 class Mp3Upload(APIView): # 댓글 전체 조회 def post(self, request, post_pk, format=None): comments = Comment.objects.filter(post_id=post_pk).order_by('created_at') # 게시글 댓글 가져오고 오래된 순으로 comment_list = [{ "comment_id": comment.id, "speed": comment.author_voice.speed, "pitch": comment.author_voice.pitc..
[Python] DFS 문제 풀이 정리 2 문제 풀이 이어서 하기. 이번에는 골드 문제도 섞어서 도전! https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net import sys sys.setrecursionlimit(10000000) input=sys.stdin.readline n = int(input()) arr = [] visited = [[False]*n for _ in range(n)] visited2 = [[False]*n for _ in range(n)] for _ in r..
Git 관리하자 졸프 멘토링 시간에 내 코드 설명하다가 Git 관련 지적을 받았다..ㅎㅎ branch 명이 지저분하다는 것! dev야 배포하면서 자주 사용되는 것이지만...나머지는 그냥 1인 개발이라 내가 임의로 대충 주요 기능별로 나눠서 관리 했다. 멘토분께서 branch명의 팁을 알려주셨다. 보통 featrue/// 이렇게 관리한다고 하심! 이렇게 만든 issue의 번호를 branch의 끝에 붙이면 merge할 때 저절로 issue가 close된다고 한다! 시험삼아 간단하게 readme만 수정하고 main branch에 merge해봤다. 실제였다면 다른 누군가가 comment를 해주었겠지만..! 소규모는 그런거 없다. 근데 안됨..읭? 검색해보니 저걸로 만들어야함. 난 git이 알아서 branch이름으로 어떻게..해..
[Python] DFS 문제 풀이 정리 DFS 정복하기. 물론 이분탐색이나 BFS도 있지만 내가 느끼기에 상대적으로 많이 보이는 건 DFS이다. 그래서 DFS를 중심으로 문제 연습! https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net import sys sys.setrecursionlimit(100000) input=sys.stdin.readline n = int(input()) # 2차원 행/열 # visited= [[False]*(n) for _ in range(n)] maxNum = 0 ..