인덱스와 쿼리 속도

Today I Learned 날짜 2025년 2월 6일 목요일 내용 is와 ==의 차이 네이버 커머스 솔루션 관련 버그를 고치던 중, 네이버 스토어 데이터에도 샵의 비활성화 여부를 나타내는 필드를 추가해야 했다. 따라서 NaverStore 테이블에 is_active 필드를 추가했다. 이제 스토어를 탐색하는 경우의 대부분은 ‘활성화된 스토어’를 기준으로 하는게 당연해졌으므로 탐색 함수에 is_active 필드가 True인 경우를 추가해줬다. 따라서 1 2 3 stmt = select(models.NaverStore).where( models.NaverStore.is_active == True ) 이런식으로 쿼리를 작성했다. 그런데 Flake8에서 경고 메시지가 떴다. ...

2025년 2월 6일 · 2 분 · 배준수

파이썬 알고리즘 : 정수 내림차순으로 배치하기

2024년 2월 22일 알고리즘 문제풀이 문제 정수 내림차순으로 배치하기 난이도 Lv.1 코드 1 2 3 4 5 6 7 def solution(n): arr = list(str(n)) map(int,arr) arr.sort(reverse=True) map(str,arr) answer = ''.join(arr) return int(answer)

2024년 2월 22일 · 1 분 · 배준수

파이썬 알고리즘 : 신고 결과 받기

2023년 11월 13일 알고리즘 문제풀이 문제 신고 결과 받기 난이도 Lv.1 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 def solution(id_list, report, k): n = len(id_list) answer = [0 for _ in range(n)] table = [[0 for _ in range(n)] for _ in range(n)] for x in report: sender, receiver = x.split() a = id_list.index(sender) b = id_list.index(receiver) table[b][a] = 1 for i in table: if sum(i) >= k: for j in range(len(i)): if i[j]: answer[j] += 1 return answer 어떤 배열들을 만들어야 하는지 헷갈렸지만 크게 어려운 문제는 아니었다. ...

2023년 11월 13일 · 1 분 · 배준수

파이썬 알고리즘 2주차 : 큐 2, 카드2, 요세푸스 문제 0, 뱀

1.개발 진행 및 완료상황 2주차 파이썬 알고리즘 공부 ‘큐’ 문제 1회독 완료 업무, 개발 중 발생한 이슈/고민 또는 이를 해결한 내용 백준 18258번 문제(파이썬) : 문제에 나온대로 입력값을 알맞게 처리하고 출력하는 문제였다. 쉽게 코드를 썼지만 시간초과로 오답처리 되었다. ‘pop’이 나올때 해당 queue에서 원솟값을 삭제하도록 만들었는데, 시간 복잡도를 낮추기 위해 냅두고 현재 주목하고 있는 index값을 올려주도록 하였다. 불필요한 과정을 없애는 것 뿐만 아니라 계산을 단순화하는 것도 하나의 방법이 될 수 있다는 것을 알았다. 아래는 정답 코드이다. import sys n = int(sys.stdin.readline()) read = 0 answer = [] for i in range(n): order = sys.stdin.readline().strip() if order.split()[0] ==‘push’: answer.append(int(order.split()[1])) elif order.split()[0] ==‘pop’: if len(answer)-read == 0: print(-1) else: print(answer[read]) read += 1 elif order.split()[0] ==‘size’: print(len(answer)-read) elif order.split()[0] ==‘empty’: if len(answer)-read == 0: print(1) else: print(0) elif order.split()[0] ==‘front’: if len(answer)-read ==0: print(-1) else: print(answer[read]) elif order.split()[0] ==‘back’: if len(answer)-read ==0: print(-1) else: print(answer[-1]) ...

2023년 3월 12일 · 6 분 · 배준수