1. FastAPI란?⭐️ ⭐️ 표준 파이썬 타입 힌트와 비동기 프로그래밍을 바탕으로 하는 파이썬 3.6 이상에서 작동하는, 현대적이고 빠른 API 서버 웹 프레임워크이다.⭐️ 타입 힌트 : Python 코드에서 변수, 함수 인자, 반환 값의 타입을 명시하는 방법 (FastAPI의 Pydantic 모델은 타입 힌트를 사용하여 데이터의 유효성을 검사를 한다)## 1. 변수 타입 힌트 # 정수형 변수age: int = 25# 문자열 변수name: str = "Alice"# 부울형 변수is_active: bool = True## 2. 함수 인자 및 반환값 타입 힌트 # 함수 인자와 반환 값의 타입을 지정def greet(name: str) -> str: return f"Hello, {name}!"# 반환..
분류 전체보기
1. 함수형 프로그래밍이란?(1) 최근 프로그래밍 패러다임과 프로그래밍의 진행 명령형 프로그래밍 절차지향 프로그래밍 : Top-Down 접근 방식을 통해 순차적으로 진행된다. (C, C++) 객체지향 프로그래밍 : Bottom-UP 접근 방식을 통해 세부 모델부터 차근차근 설계하며 진행된다. (C++, Java, C#)선언형 프로그래밍 ⭐️ 함수형 프로그래밍 : 순수 함수를 조합하며 진행된다. (Haskell, Lisp, Erlang) 명령형 프로그래밍의 고질병인 낮은 가독성과 유지보수의 어려움을 함수형 프로그래밍을 통해 해결할 수 있다. (2) 함수형 프로그래밍의 특징⭐️⭐️ 부수 효과가 없는 순수 함수를 1급 객체로 간주하여 파라미터나 반환값으로 사용할 수 있으며, 참조 투명성을 지킬 수 있다...
1. 문제 설명문제 링크 : https://www.acmicpc.net/problem/31796부산대학교 2024 pnup div1 / div2 기출문제 2. 풀이 과정문제 해결의 흐름입력 받을 때 바이러스 위치들을 전부 queue에 저장하자bfs 구현 q_virus와 q_building, 둘 중 하나가 빌 때까지 bfs 탐색이 이루어진다.Tg의 시간동안 virus가 감염시키는 것이 building이 완전히 감염되는 것보다 우선시되어야 한다. virus의 상하좌우에 building이 위치해 있다면 해당 building은 감염되었기에 q_building에 push해주자virus의 상하좌우에 안전지역이 위치해 있다면 해당 안전지역은 감염되어 virus가 되었기에 q_viurs에 push해주자q_buildin..
1. 문제 설명링크 : https://www.acmicpc.net/problem/317962. 풀이 과정문제 해결의 흐름 입력 받은 N개의 책 가격들을 오름차순으로 정렬하자. 책 가격들이 저장된 vector를 탐색하며 제일 값싼 책을 기준으로 2배 이상의 가격이 있다면 페이지를 늘리고 그 가격을 제일 값싼 책으로 갱신한다. 나의 코드#include#include #include using namespace std;int main() { // 입력 받기 int N; cin >> N; vector bookPrice; for (int i = 0; i > price; bookPrice.push_back(price); } // 정렬 sort(bookPrice..
1. 문제 설명링크 : https://www.acmicpc.net/problem/317972. 풀이 과정문제 해결의 흐름 아파트 층 수를 (참가자의 수 * 2)로 나눠주자! 참가자는 손이 두 개고 (참가자의 수 * 2)로 나눠준 나머지가 실질적인 아파트 층 수라고 봐도 무방하다. 만약 (참가자의 수 * 2)로 나눈 나머지가 0이라면 아파트 층 수는 (참가자의 수 * 2)이다. 반복문을 돌며 아파트 층 수번째 층에 있는 손바닥의 주인을 찾는다. 나의 코드 #include #define MAX 10001using namespace std;int arrApartment[MAX] = {}; // 0으로 초기화int main() { // 입력 받기 int N, M; // N : 아파트 층 수 , M :..
1. 문제 설명링크 : https://www.acmicpc.net/problem/317892. 풀이 과정문제 해결의 흐름후안의 돈으로 들고 있는 무기보다 큰 공격력의 무기를 살 수 있다면 모험을 떠날 수 있다. 나의 코드 #include #define MAX 101using namespace std;int N; // 무기의 수int X, S; // X : 돈, S : 후안의 공격력int weaponPower, weaponPrice;int main() { cin >> N; cin >> X >> S; bool result = false; for (int i = 0; i > weaponPrice >> weaponPower; if (weaponPrice S) { ..
1. 문제 설명링크 : https://www.acmicpc.net/problem/94662. 풀이 과정문제 해결의 흐름 백준 '2668 숫자고르기'와 비슷하다고 생각했는데 많이 다른 거 같다 ㅠㅠ...이 문제의 키포인트는 '사이클을 완성할 때까지 탐색하다가 사이클을 이루는 요소들 골라주기'이다. 사이클을 완성시키는 경우는 어떤 것이 있을까? 예를 들어 아래의 경우 1 -> 4 -> 7 -> 6 -> 4 와 같이 사이클을 형성한다. 1로 시작해서 4로 끝났는데 뭔 사이클이냐?라고 생각할 수도 있다. 하지만 4 -> 7 -> 6 -> 4의 사이클을 이룬다! 따라서 이와 같이 사이클을 이루는 경우 탐색을 멈추고 사이클을 이루는 숫자들을 백트래킹해주자! 12345674137346 나의 코드 #include #..
1. 문제 설명링크 : https://www.acmicpc.net/problem/19872. 풀이 과정문제 해결의 흐름 좌측 상단에서부터 시작해서 상하좌우로 탐색하며 이동할 수 있는 최대 칸 수를 구해야하는 문제이다.dfs를 이용해 최대 칸 수를 완전 탐색으로 구해보자.이때, 알파벳 개수는 26개이므로 26개의 인덱스를 갖는 int형 배열을 통해 방문처리해주자.나의 코드 #include using namespace std;int dr[4] = {0,0,1,-1};int dc[4] = {1,-1,0,0};int R, C;int result_cnt = 0;char alphabet_map[20][20]; // 대문자 알파벳들을 입력 받을 이차원 배열int visited[26] = {}; // 전부 0으로 초..