분류 전체보기 151

[FastAPI] 데이터 받기

2024.09.24 - [분류 전체보기] - [FastAPI] 파이썬으로 서버 만들기 [FastAPI] 파이썬으로 서버 만들기파이썬으로 서버를 만들기 위한 프레임 워크1. Flask2. Django 3. FastAPI 이 중 쉽고 빠른 FastAPI로 서버를 만들어 보겠습니다.FastAPI 장점: 비동기 지원동기: 클라이언트 요청이 오면 하나를 처리하고dogfoot1.tistory.com 데이터 받기1. 주소 뒤에 데이터 넣어 보낼 때2. Body를 이용해서 데이터 보낼 때- form으로- json으로  주소 뒤에 데이터 넣어 보낼 때  @app.get("/login/{user_id}") def login(user_id): return {"id": user_id}주소 뒤에 {변수명}을 쓰고함수에 ..

카테고리 없음 2024.09.25

[FastAPI] 파이썬으로 서버 만들기

파이썬으로 서버를 만들기 위한 프레임 워크1. Flask2. Django 3. FastAPI 이 중 쉽고 빠른 FastAPI로 서버를 만들어 보겠습니다.FastAPI 장점: 비동기 지원동기: 클라이언트 요청이 오면 하나를 처리하고 다음 것을 처리. 동시에 요청이 오면 비효율적비동기: 동시에 요청이 오면 동시에 실행  필요 라이브러리 설치pip install fastapipip install uvicornpip install python-multipart  요청 확인을 위한 테스트 툴 설치1. Postmanhttps://nhj12311.tistory.com/393 포스트맨(postman) 사용법(설치, 다운로드)전부터 웹 개발을 하면서 아주 유용하게 사용했던 프로그램(서비스)가 있어 소개해보려고 합니다. ..

카테고리 없음 2024.09.24

[Python/백준] RGB 거리

https://www.acmicpc.net/problem/1149 참고https://m.blog.naver.com/occidere/220785383050 [백준] 1149 - RGB거리 (2017-12-02 수정완료)문제 링크 : https://www.acmicpc.net/problem/1149 이 문제는 아주 전형적인 DP(동적 계획법) 문제 중 ...blog.naver.com dp를 사용하기 위해 점화식을 만든다현재 집의 R, G, B를 선택했을 때의 최솟값을 선택한다R이 0번 인덱스, G가 1번 인덱스, B가 2번 인덱스일 때현재 -1 집의 인덱스가 겹치지 않도록 점화식을 만든다 현재집에 R을 선택했을 때 -> R 선택 비용 + 현재-1집의 G, B 중 최소 비용dp[i][0] = lists[i][..

[백준/Python] 빙산

https://www.acmicpc.net/problem/2573 TASK1. 1년에 얼만큼 녹는지 확인2. 두 덩어리가 되는 지 보기 -> BFS 1. 하나씩 확인 입력import sysfrom collections import dequeinput = sys.stdin.readline# 행 열n, m = map(int, input().split())graph = []for _ in range(n): graph.append(list(map(int, input().split()))) direction = [(-1, 0), (1, 0), (0, -1), (0, 1)]  1번 태스크를 위한 함수def count_0(nowx, nowy): cnt = 0 for dx, dy in direct..

카테고리 없음 2024.09.20

[Python] Set 자료형

https://wikidocs.net/1015 02-6 집합 자료형집합(set)은 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다. [TOC] ## 집합 자료형은 어떻게 만들까? 집합 자료형은 다음과 같이 set 키워드를 사용해 …wikidocs.net # 순서가 없어서 인덱싱 기능을 이용하려면 리스트나 튜플로 변환해야 함# 문자열도 가능# 교집합 & 합집합 | 차집합 -# 원소 하나 추가 add# 여러 원소 추가 update# 특정값 제거 remove# 기존 세트 비우기 clear  set를 이용하여 문제 풀기 https://www.acmicpc.net/problem/11723 import sysinput = sys.stdin.readlineS = set()m = int(input())for _..

카테고리 없음 2024.09.20

[백준/Python] 로봇 청소기

https://www.acmicpc.net/problem/14503 저는 BFS를 사용했습니다.  현재 칸이 0이면 청소 상하좌우- 청소 되지 않은 칸이 없으면 한 칸 후진 (벽이면 멈춤) - 청소 되지 않은 칸이 있으면 반시계 회전 (앞 칸이 청소 안된 곳일 때까지)반복 방문 확인을 위한: 벽(1)과 청소가 안된 것(0) 청소가 된 것(0.5)로 구분 import sysfrom collections import dequeinput = sys.stdin.readline# 행 열n, m = map(int, input().split())r, c, d = map(int, input().split()) # 0북 1동 2남 3서graph = []for _ in range(n): graph.append(lis..

카테고리 없음 2024.09.19

[백준/Python] 맥주 마시면서 걸어가기

https://www.acmicpc.net/problem/9205저는 dfs를 사용하였습니다.DFS를 사용하는 이유: 거리가 되는 모든 방향을 탐색해야 하기 때문https://www.acmicpc.net/board/view/86660 x와 y의 값이 1000(20X50) 이하이면 갈 수 있다1000보다 크면 갈 수 없다  입력 받기from sys import stdint = int(stdin.readline())result = []for _ in range(t): n = int(stdin.readline()) # 편의점 개수 home_x, home_y = map(int, stdin.readline().split()) store = [] for _ in range(n): ..

[Python] 최단 경로 플로이드 워셜 알고리즘

https://www.yes24.com/Product/Goods/91433923  이것이 취업을 위한 코딩 테스트다 with 파이썬 - 예스24나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 · 삼성전자 · 네이버 · 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생www.yes24.com 플로이드 워셜 알고리즘모든 지점에서 모든 지점까지의 최단 경로를 구해야 할 때 사용시간 복잡도: O(N^3) 특정 노드를 거쳐서 간 것과 바로 간 것 중 최소를 구한다점화식: D(ab) = min( D(ab), D(ak)+D(kb) ) 필요: 최단 경로를 저장하기 위한 2차원 리스트  최단 경로를 저장하는 grap..

카테고리 없음 2024.09.18

[Python] 최단 경로 다익스트라 알고리즘

https://www.yes24.com/Product/Goods/91433923 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 예스24나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 · 삼성전자 · 네이버 · 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생www.yes24.com 다익스트라 알고리즘음의 간선이 없을 때 사용된다. 최단 거리를 모두 무한으로 초기화한다.-> 방문하지 않은 노드 중 최단 거리가 가장 짧은 노드를 찾는다-> 그 노드를 통해서 최단 거리를 줄일 수 있으면 갱신모든 노드 반복 짧은 노드부터 찾는 이유: 최단 거리가 완전히 선택된 노드이므로, 최단 거리가 더이상 감소하지..

카테고리 없음 2024.09.18

[백준/Python] 무한 수열

+https://www.acmicpc.net/problem/1351 먼저 저는 다이나믹 프로그래밍을 사용해야겠다고 생각했습니다예를 들어 n=7, p=2, q=3이 나왔을 때 다이나믹 프로그래밍- 재귀 함수 + 메모제이션을 이용(탑다운 방식)- 반복문을 이용(보텀업 방식) 먼저 반복문을 이용하여 코드를 구현했습니다.from sys import stdinn, p, q = map(int, stdin.readline().split())dp = [0] * (n+1)dp[0] = 1for i in range(1, n+1): dp[i] = dp[i//p] + dp[i//q] print(dp[n])하지만 n이 최대 10의 12승이기 때문에 메모리 초과가 났습니다. 그래서 저는 메모리를 줄이기 위해 n//p와..