문제주어진 구간이 팰린드롬인지 빠르게 판단해 1 혹은 0을 출력하는 문제이다.풀이DP를 사용해 각 구간이 팰린드롬인지 미리 계산하면, 명우의 질문에 대한 답을 빠르게 구할 수 있다.길이가 1인 경우: 모든 숫자는 무조건 팰린드롬이다.길이가 2인 경우: 두 숫자가 같은 경우만 팰린드롬이다.길이가 3 이상인 경우: 양 끝의 두 숫자가 같고, 내부 숫자들이 팰린드롬일 때만 팰린드롬이 성립한다.팰린드롬의 길이가 3인 경우부터 차례로 DP를 사용해 팰린드롬 여부를 계산하면, 내부 구간을 비교할 수 있다.이후 a에서 b까지의 구간에 대해 DP 테이블을 참조해 팰린드롬 여부를 빠르게 출력할 수 있다.Python 코드import sysinput = sys.stdin.readlinen = int(input())arr ..
문제동영상 재생기에 대한 명령어가 주어졌을 때, 알맞게 시간 이동하여 최종 재생 위치를 도출하는 문제이다.명령어는 prev와 next 두 가지가 있으며, 현재 재생 위치가 오프닝 구간이면 자동으로 오프닝 건너뛰기를 실행한다.prev 명령은 현재 재생 위치에서 10 이전으로 이동하는 명령어이며 0보다 작아지지 않는다.next 명령은 현재 재생 위치에서 10 이후로 이동하는 명령어이며 최대 길이보다 커지지 않는다.오프닝 건너뛰기는 오프닝 구간 (op_start ≤ 현재 위치 ≤ op_end)인 경우 op_end로 이동한다.풀이문자열로 주어진 시간을 숫자로 변환하고, 명령어에 따라 시간을 더하고 뺌으로써 문제를 풀 수 있다.mm:ss 가 주어지면 t = mm*60 + ss 로 변환한다.prev 명령어가 주어지..
문제주어진 문제는 N×M 크기의 격자에서 빙하(1)와 물(0)의 상태를 표현하는 배열을 통해, 빙하가 전부 녹는 데 걸리는 시간과 마지막으로 녹은 빙하의 크기를 계산하는 것이다. 빙하는 매 초마다 상하좌우로 인접한 물과 접촉하여 동시에 녹는데, 빙하로 둘러싸여 있는 물의 경우에는 붙어 있는 빙하를 녹이지 못한다. 최종적으로 빙하가 모두 녹을 때까지의 시간과 마지막으로 녹은 빙하의 크기를 출력해야 한다. 풀이바깥쪽에 있는 물이 빙하와 접촉하면 해당 빙하가 녹지만, 안쪽에 있는 물은 빙하에 영향을 미치지 않는다는 점이 중요하다.이를 해결하기 위해 BFS 알고리즘을 사용하여 바깥쪽 물을 중심으로 탐색하면서 빙하를 만나면 녹이도록 한다.이 과정에서 빙하가 녹은 자리는 물의 영역으로 간주될 수 있기 때문에, 기존..
MySQL 서버는 처음 설치하면 자동으로 서버가 시작되게 설정된다. MySQL 서버를 필요한 시점에만 서버를 실행하거나 종료하고 싶다면 수동으로 설정을 바꾸면 된다.1. MySQL 서버 수동 설정윈도우 검색창에서 '서비스' 검색Windows 작업 표시줄의 검색창에 '서비스'를 입력하고 서비스 관리 도구를 연다. MySQL 서비스 탐색서비스 목록에서 MySQL 또는 MySQL80을 찾는다. 속성 변경MySQL 서비스를 더블 클릭해 속성 창을 연다.속성 창에서 시작 유형을 수동으로 변경한 후 확인을 클릭한다. 이제 MySQL 서버는 수동으로 시작할 수 있으며, 시스템이 시작할 때 자동으로 실행되지 않는다. 2. 명령어로 MySQL 서버 시작 및 종료하기 MySQL 서버를 수동으로 설정한다면, 명령어(cmd..
Elasticsearch엘라스틱서치(Elasticsearch)는 아파치 루씬(Apache Lucene)을 기반으로 개발된 오픈소스 분산 검색 엔진이다. 루씬의 역색인(inverted index) 구조를 활용하여 문서 내 단어들을 빠르게 색인하고 검색할 수 있다.엘라스틱서치는 검색 엔진 기능 외에도 로그 분석과 실시간 모니터링 등에 사용된다.특히 Logstash와 Kibana와 함께 사용되어 데이터 수집, 저장, 분석, 시각화를 제공할 수 있다.Elasticsearch Python Client 사용하면 Python 애플리케이션에서 Elasticsearch를 쉽게 통합할 수 있다. 1) Elasticsearch 설치Elasticsearch Python Client를 설치하려면 pip를 사용하면 된다.pip ..
VSCode에서 MySQL Extension 설치하기먼저 VSCode에 MySQL Extension을 사용하기 전, 연결할 MySQL을 먼저 준비되어야 한다.혹시 개인 연습용이라면 MySQL을 설치하고 시작하면 좋다.[MySQL] MySQL 설치하기 (윈도우 / windows)연결할 MySQL의 Host와 Port, Username과 Password를 사전에 알아두자.주의! MySQL Extension은 기존 DB에 연결해주는 역할을 하는 것이기에 연결할 DB가 준비되어 있어야 한다! Extension을 통해 새로 만드는 것이 아님으로 주의하자. 1) Extensions 아이콘을 선택하여 MySQL을 검색한다.다양한 Extension 중에 Weijan Chen의 MySQL을 선택한다. 2) Install..
1. 개발 환경 준비1) FastAPI 설치이전 글을 참고해서 FastAPI를 설치 [FastAPI] FastAPI 설치 및 간단한 웹 API 만들기FastAPIFastAPI란 빠르고 간단한 python 기반의 웹 프레임워크이다.비동기 방식을 사용하기 때문에 Uvicorn이나 Hypercorn의 ASGI Server가 필요하다.예제에서는 Uvicorn을 사용하려 한다. 1) FastAPI 및 Uvicorn 설code-angie.tistory.com 2) MySQL 설치이전 글을 참고해서 MySQL을 설치 [MySQL] MySQL 설치하기 (윈도우 / windows)MySQL MySQL은 가장 많이 사용되는 데이터베이스 중 하나이며, 무료이기에 간단히 설치해 바로 사용할 수 있다. 윈도우와 리눅스 등 다양..