문제 인프런 저작권 문제 코드 n,m = map(int,input().split()) Line=[] def Count(len): cnt = 1 endpoint = Line[0] for i in range(1, n): if Line[i]-endpoint >= len: cnt +=1 endpoint = Line[i] return cnt for _ in range(n): tmp=int(input()) Line.append(tmp) Line.sort() rt = Line[n-1] lt=1 while lt= m: #배치 할 수 있는 마리 수 res=mid lt=mid+1 else: rt=mid-1 print(res) 접근법 이분 탐색으로 접근해서 가장 좋은 수를 찾는 방법이다 배운 점 이분 탐식 시 lt에 마냥 ..
전체 글
읽기 쉬운 코드를 짜기 위해 노력합니다. 좋은 코드는 단순하고 이해하기 쉬워야 한다고 생각합니다.배경 통계 페이지를 만들고 있는데 개월 별로 통계를 보여주려고 한다. 그런데 생각해보니 개월은 28~31까지 마지막 날이 다양하다. (대충 30일 마이너스 때리면 안된다는 이야기) 만들어야 하는 API 조건이 개월 별로 통계니까 정리하면 request를 통해 param 받기 날짜로 형태 변환하기 날짜 만큼 형태 만들어주기 db에서 들고온 데이터와 비교하기 unique 해야 하기 때문에 중복제거를 해주기 벌써부터 머리 아프다 코드 1. request를 통해 param 받기, 2. 날짜로 형태 변환하기 start_date_str = request.GET.get('start_date', three_months_ago.strftime('%Y-%m-%d')) end_date_str = request.GET...
3월달은 아직 준비중인 자격증 시험도 없고 해서 여유가 있는 달이다 그런데 네이버 공채 소식이 있어서 3월 23일까지 코테 준비를 해보고 뒤에 진행해야겠다 합격할 자신은 없지만 그래도 해보는 거지 뭐 어때~ 눈물의 서류 광탈,, 포트폴리오 정리 인프런 알고리즘 재귀함수 까지 다 보기 쇼핑몰 기술 코드 구현해보기 위해서 프로젝트 하나 만들기
배경 날짜 형식을 받아서 날짜 형식이 맞으면 저장하고 날짜 형식이 맞지 않으면 저장하지 않으려는 코드를 구현하고자 했습니다. 프론트에서 str로 받기 때문에 datetime으로 바꾼 후에 체크해야 하는데 이 점을 잘 알아야 합니다 코드 try: # 시도: '%Y-%m-%d %H:%M:%S' 형식 datetime_object = datetime.strptime(ended_at, '%Y-%m-%d %H:%M:%S') except ValueError: try: # 시도: '%Y-%m-%dT%H:%M:%S' 형식 (ISO 8601) datetime_object = datetime.strptime(ended_at, '%Y-%m-%dT%H:%M:%S') except ValueError: # 어떤 형식에도 맞지 않..
배경 Docs작성을 위해 DRF-Seralizer을 사용하면 자동으로 만들어주지만 기존 DRF-Seralizer는 무거워서 사용중인 view들은 Csutom 해서 사용중입니다. 그러나 Docs를 위해 DRF-Seralizer를 만들 수 는 없는 이유이기에 inline_serializer을 이용하기로 했습니다. 여기서 seriliazer을 전체 한땀한땀 만들기엔 너무 귀찮고 시간이 많이 걸리고 다른 Model을 참조하는 것은 Model들을 왔다 갔다 하면서 귀찮아 주금 아주 시간이 오래 걸립니다. 그래서 원하는 필드값을 받아 inline_seralizer로 만드는 함수를 만들었습니다 inline_serializer는 drf-spectacular 패키지에서 제공하는 유틸리티 함수 중 하나입니다. 이 함수는..
배경 회사 내에 문서 작업을 notion으로 했는데 계속 늘어나는 api들을 관리하기 위해 문서를 자동화 해주는 도구를 도입하기로 했습니다. sweager과 redoc중 고민을 했는데 두 개의 차이점이 아래와 같아서 프론트와 협업이 위주인 문서들이라 ReDoc를 사용하기로 결정했습니다. Swagger를 선택할 때: 상호 작용 가능한 API 문서가 필요한 경우. 다양한 기능과 확장성이 중요한 경우. 이미 많은 사용자가 Swagger UI에 익숙한 경우. ReDoc를 선택할 때: 단순하고 빠른 UI가 필요한 경우. 읽기 전용 문서로 제공하면 충분한 경우. React 기반의 동적인 UI를 선호하는 경우. 코드 pip install redoc from redoc import RedocView urlpattern..
문제 코드 n = int(input()) ls = [list(map(int,input().split())) for _ in range(n)] lt = rt = n//2 cnt = 0 for i in range(n): for j in range(lt, rt+1): cnt +=ls[i][j] if i < n//2: lt -=1 rt +=1 else: lt +=1 rt -=1 print(cnt) 접근법 List의 진하게 칠해진 부분에 접근 하는 알고리즘이 중요하였다 배운 점 row에 따라 하나 씩 양 옆으로 커져가는 2중 list의 원소에 접근하는 방법을 배웠다.
문제 코드 from itertools import permutations def is_prime(num): if num < 2: return False for i in range(2, int(num**0.5) + 1): if num % i == 0: return False return True def solution(numbers): answer = set() # 가능한 모든 숫자를 생성하여 집합에 추가 for i in range(1, len(numbers) + 1): perms = permutations(numbers, i) for perm in perms: num = int(''.join(perm)) if is_prime(num): answer.add(num) return len(answer) per..