[프로젝트] 1-1. 로직 개선 - PostGIS 도입
·
Project/Performance Improvement
개요오늘은 지난번에 소개 드린 "올봄" 프로젝트의 1. 로직 개선을 진행해보려고 합니다.성능을 개선하는 방법에는 데이터베이스 쿼리 튜닝, 비즈니스 로직 개선 등 다양한 방법이 있습니다. 이번에 개선할 프로젝트인 AI 기반 장년층 라이프 케어 서비스 "올봄"에서는 챗봇, 지도, ToDo, 게임, 일자리 총 5가지 기능이 있습니다.이 중에서도 저는 지도 기능에서 로직 개선을 진행하였습니다.기존 지도 리스트 반환 API 문제점 실제 서비스를 사용하던 중, 지도에서 시설 데이터를 렌더링하는 속도가 느리다는 사실을 발견하였습니다.   지도에서 데이터를 렌더링하는 속도가 느린 주된 원인은, 지도의 움직임이 있을 때마다 클라이언트가 화면 내 영역의 말단 위경도 값을 받아 서버에 API 요청을 보내기 때문입니다. 이로..
[백준] 5052 : 전화번호 목록 (파이썬)
·
Algorithm/Hash
해시, 문자열, 트라이 문제https://www.acmicpc.net/problem/5052💡 풀이코드 (성공)import sys t = int(sys.stdin.readline())for _ in range(t): n = int(sys.stdin.readline()) arr = [] for _ in range(n): num = str(sys.stdin.readline().strip()) # strip 추가하여 해결 arr.append(num) arr.sort() def sol(n, arr): phone_num = set() for num in arr: for i in range(len(num) - 1):..
[백준] 17266 : 어두운 굴다리 (파이썬)
·
Algorithm/Binary Search
이진탐색 문제https://www.acmicpc.net/problem/17266💡 풀이코드 (성공) import sys import math N = int(sys.stdin.readline())M = int(sys.stdin.readline())light = list(map(int, sys.stdin.readline().split()))def binary_search(maxNum): left = 0 right = N answer = 0 while left mid = 길을 모두 비추기 위한 가로등의 최소 높이 주요 로직가로등이 비춰야 하는 거리 확인1 (시작-가로등, 가로등-끝)입력으로 배열에 가로등의 위치(x)만 들어간다. 그런데, 가로등-가로등 사이의 간격보다 길의 시작 위치-가..
[백준] 2212 : 센서 (파이썬)
·
Algorithm/Greedy
그리디 문제https://www.acmicpc.net/problem/2212문제 설명고속도로 위에 최대 K개의 집중국을 세워 N개의 센서에 도달해야 한다.이때, N개의 센서가 적어도 하나의 집중국과는 통신이 가능해야 한다.각 집중국의 수신 가능 영역의 길이의 합을 최소화해야 한다.접근 방식그리디우리는 최대 K개의 집중국을 세워 모든 N개의 센서에 도달하는 것이 목표이다.즉, 최대 K개의 집중국을 세워 n(n1,n1,..)-k(k1,k2,..)의 최솟값의 합을 구하는 것이 목표이다.여기서 N개의 센서와 K개의 집중국이 의미하는 바가 무엇인지 알아보자.N개의 센서 : 우리가 도달해야 하는 센서의 개수로, 각 센서는 원점으로부터의 정수 거리의 위치에 놓여 있다.K개의 집중국 : 세울 수 있는 집중국의 개수로,..
[백준] 13164 : 행복 유치원 (파이썬)
·
Algorithm/Greedy
그리디 문제https://www.acmicpc.net/problem/13164초기 접근 방식1. 이진탐색이 문제를 처음에 그리디로 접근하고자 하였으나, 생각보다 잘 풀리지 않아 그 다음 방식으로 이진 탐색을 떠올렸다. 백준에 있는 공유기 설치 문제와 유사하다고 생각하여 이 문제 또한 이진탐색으로 접근하여 문제를 풀어보았다.https://www.acmicpc.net/problem/2110 2. 잘못된 이유이진 탐색에서 mid의 의미가 명확하지 않다. 공유기 설치 문제 : mid = 공유기 사이의 최대 간격 -> 이를 바로 답에 활용할 수 있었음.행복 유치원 문제 : mid = 조를 S개 만큼 나누면서, 각 조의 첫번째 원생 사이의 간격이 최소가 되도록 하는 수 -> 문제에서 요구하는 바와 일치하지 않음.이..
[백준] 1647 : 도시 분할 계획 (파이썬)
·
Algorithm/Graph
MST 문제https://www.acmicpc.net/problem/1647접근 방식문제 분석마을은 N개의 집과 그 집들을 연결하는 M개의 길로 이루어져 있다. 길은 어느 방향으로든지 다닐 수 있는 편리한 길이다. 그리고 각 길마다 길을 유지하는데 드는 유지비가 있다. 임의의 두 집 사이에 경로가 항상 존재한다.-> N개의 노드와 M개의 간선을 가지는 양방향의 가중치 그래프일단 분리된 두 마을 사이에 있는 길들은 필요가 없으므로 없앨 수 있다. 그리고 각 분리된 마을 안에서도 임의의 두 집 사이에 경로가 항상 존재하게 하면서 길을 더 없앨 수 있다. 마을의 이장은 위 조건을 만족하도록 길들을 모두 없애고 나머지 길의 유지비의 합을 최소로 하고 싶다.-> MST (1. 불필요한 간선 제거 2. 최소 신장 ..
_은선_
'분류 전체보기' 카테고리의 글 목록 (3 Page)