전체 글 (25) 썸네일형 리스트형 [알고리즘] Dijkstra 알고리즘(최단 경로 탐색, 그래프) 그래프 이론 중에서 최단 경로를 구하는 문제에서 많이 쓰이고, 네트워크 분야에서 많이 쓰이는 알고리즘인 다익제스트라 알고리즘을 배워보겠습니다. Dijkstra는 그래프이론에서 특정 노드에서 출발했을 때 각각의 다른 노드까지 도달하는데 최소 경로를 구할 수 있는 알고리즘 입니다. 시작 노드(정점)에서 도달 가능한 노드(정점)들을 다 탐색합니다.그리고 그 탐색한 노드들의 경로의 길이(거리), 가중치를 최단 경로 table에 저장합니다. 그리고 선택합니다. 현재 위치에서 가장 거리가 작은 노드로 선택(이동)합니다. 선택(이동)한 노드는 이제 fix됩니다. 시작 점에서 현재 업데이트한 거리보다 작을 순 없기 때문입니다.최단 경로 table에서 이동한 노드의 거리는 이제 fix됩니다. 이제 fix된 노드에서 이동.. 모던 웹과 파이썬 FastAPI는 파이썬으로 작성하는 웹프레임워크로 java버전인 spring의 파이썬 버전이라고도 할 수 있다. FastAPI를 공부하기 전 간단한 웹 개념에 대해 공부해보고 들어가보자. 웹이란 (Wide World Web)을 주로 지칭한다. W3라고도 부르는데, 팀 버너스 리가 만들어낸 정보 시스템이다. 팀 버너스 리가 유럽 연합 물리 연구회? 같은 회사에서 재직 당시 각각 다른 정보 시스템을 쓰고 있어, 서로 다른 부서와 정보를 열람하고 보는 데 어려움이 있어서 만들게 되었다. 원래는 트리 구조로 상위 폴더에서 타고 열람을 해야했었는데, HyperText Transfer Protocol(HTTP)을 도입하여 url로 서버와 클라이언트가 응답하며 주소로 바로 들어갈 수 있게 만들었다. 간단하게 웹이.. (번외) Alembic ‘Target database is not up to date’ 오류 원인 진단 📘 문제(Problem) – Alembic 마이그레이션 오류 분석다음은 Python FastAPI + SQLAlchemy + Alembic을 사용하여 SQLite 데이터베이스를 설정하던 중 발생한 실제 콘솔 출력이다.[지문]개발자는 SQLite 데이터베이스(myapi.db)와 Alembic을 이용해 모델을 마이그레이션하려고 한다.그러나 다음과 같은 오류가 반복적으로 발생하였다. $ alembic revision --autogenerate -m "init" INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. ERROR [alembic.. 모델로 데이터베이스 관리하기 데이터 베이스를 사용하려면 SQL 쿼리(query)라는 구조화된 질의를 작성하고 실행하는 등의 복잡한 과정이 필요하다는 것은 모두가 알고 있습니다. CRUD 작업은 DML(INSERT, SELECT, UPDATE, DELETE)에 해당하며, 테이블을 생성하거나 수정하려면 DDL(CREATE TABLE, ALTER TABLE 등)을 알아야 합니다. DDL(Data Definition Language)을 알고 있어야, 즉 데이터 랭귀지, 명령 구문을 알고 있어야 테이블 생성하거나 수정이 가능합니다. 하지만 이제 ORM(object relational mapping)을 이용하면 파이썬 문법만으로도(다른 언어도 가능함, spring boot- java, 각 언에 맞는 ORM 프레임워크가 존재함) 데이터베이스를 .. async 비동기, 코루틴 함수 웹서버를 운영할 때 I/O 연산이 오래 걸리는 어플리케이션이 존재할 수 있다. 이것을 그냥 마냥 기다리는 건 시간과 자원 낭비다. 그러므로 비동기를 사용하여 효율적으로 시간과 자원을 사용할 수 있다.밑의 내용은 비동기에 대한 설명을 요약한 것이다.🧠 5줄 멘탈모델async def f()는 코루틴 함수. f()를 호출해도 아직 안 실행됨(코루틴 객체만 생김).**await f() → “내 코루틴만” 잠시 멈추고 f가 끝나면 그 다음 줄로 진행. (루프는 계속 돌아서 다른 태스크는 실행됨)동시에 돌리고 싶으면 await asyncio.gather(f(), g()) 또는 task = asyncio.create_task(f()).이벤트 루프를 막지 말기: time.sleep, 동기 I/O 금지 → await .. 챗봇 기반 앱 테스트 [백준] #18111 마인크래프트 (누적합) 안녕하세요.. 오늘은 백준 18111 문제를 풀어보도록 하겠습니다...https://www.acmicpc.net/problem/18111마인크래프트 시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초 (추가 시간 없음)1024 MB83782225651673524.584%문제팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 땅을 파거나 집을 지을 수 있는 게임이다.목재를 충분히 모은 lvalue는 집을 짓기로 하였다. 하지만 고르지 않은 땅에는 집을 지을 수 없기 때문에 땅의 높이를 모두 동일하게 만드는 ‘땅 고르기’ 작업을 해야 한다.lvalue는 세로 N, 가로 .. [백준] #1620_나는야 포켓몬 마스터 이다솜 안녕하세요! 오랜만입니다. 정말 오랜만입니다.... 거의 1년만인 것 같습니다 ㅜㅜ... 마지막 게시물이 24년 9월쯤인 것 같은데...1년 동안 7개월 정도 연구원 인턴하고, 자격증 시험 준비하고,,, 프로젝트하고 하다보니 백준을 너무 소홀히 한 것 같습니다 ㅜㅜ...이제 다시 학교로 돌아와서 복학하게 되었습니다!! 초심되찾고 열심히 해보겠습니다...오늘 해결할 문제는 백준 1620번 문제입니다.https://www.acmicpc.net/problem/1620 나는야 포켓몬 마스터 이다솜시간 제한메모리 제한제출정답맞힌 사람정답 비율2 초256 MB145695546244122135.635%문제안녕? 내 이름은 이다솜. 나의 꿈은 포켓몬 마스터야. 일단 포켓몬 마스터가 되기 위해선 포켓몬을 한 마리 잡아야.. 이전 1 2 3 4 다음