백준 / 1931번 / 회의실 배정 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/1931   처음 문제를 보자마자 알고리즘 강의 때 배운 Interval Schduling의 접근법이 생각났다. Earliest finish time을 기준으로 접근하여 가장 빨리 끝나는 것을 선택하면 최적의 답을 구할 수 있는 것이다.  이를 고려하여 입력 받은 회의 시간들을 끝나는 시간을 기준으로 오름차순 정렬하고 제출하였는데 실패하였다. 그 이유는 끝나는 시간이 동일한 회의들에 대한 처리를 해주지 않았기 때문이었다. 따라서 아래와 같이 1. 회의가 끝나는 시간 2. 회의 시작 시간  이렇게 우선 순위를 두어서  .sort(key = lambda x: x[1])이 아닌  .sort(key = lambda x: (x[1], x[0])) ..
[운영체제] 컴퓨터 시스템 계층 구조
·
CS/OS
컴퓨터 시스템이 계층 구조로 설계된 이유?-계층 간의 독립성 확보를 위해(추상화)  ‣ 사용자 : OS나 하드웨어에 대한 지식이 없어도 응용 프로그램으로 컴퓨터 활용 가능  ‣ 응용 프로그램 개발자 또는 응용 프로그램     : 장치 타입이나 구조, 제어 방법을 몰라도 개발 가능       컴퓨터 하드웨어가 바뀌어도 응용프로그램 다시 작성할 필요 없음‣ 운영체제       : 장치 관련된 모든 작업을 디바이스 드라이버에게 요청       응용프로그램과 하드웨어 사이 인터페이스 역할 사용자에 대한 운영체제의 역할- 사용자가 하드웨어에 관한 지식이 없어도 컴퓨터를 다루기 용이하게 함- 사용자에게 컴퓨터 시스템을 사용할 편리한 인터페이스 제공- 컴퓨터의 사용을 돕는 여러 도구 응용프로그램(유틸리티) 제공   ..
백준 / 14888번 / 연산자 끼워넣기 / python 파이썬 / 백트래킹
·
코딩테스트/백준 (python)
문제 :  https://www.acmicpc.net/problem/14888   코드N = int(input())nums = list(map(int, input().split()))op = list(map(int, input().split()))maxn = -1e9minn = 1e9def dfs(n, i, add, sub, mul, div): global maxn, minn if i == N: maxn = max(maxn, n) minn = min(minn, n) return else: if add: dfs(n + nums[i], i+1, add - 1, sub, mul, div) if sub: ..
백준 /1912번 / 연속합 / python 파이썬
·
코딩테스트/백준 (python)
문제 :  https://www.acmicpc.net/problem/1912 내 답안n = int(input())num = list(map(int, input().split()))dp = [0] * ndp[0] = num[0]for i in range(1, n): dp[i] = max(num[i], num[i] + dp[i-1])print(max(dp)) 다이나믹 프로그래밍(DP)으로 해결할 수 있는 문제이다. 현재 숫자를 포함해 앞에서부터 더해온 값과 현재 값을 비교했을 때, 현재 숫자가 크다면 앞에서 더해온 값은 총합을 키우는데 의미가 없다. 따라서 현재까지 더해온 값을 DP 테이블에 저장하고 현재 값과 비교해가면서 문제를 해결할 수 있다.
백준 / 1021번 / 회전하는 큐 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/1021  덱 자료구조를 활용해 구현하면 쉽게 풀 수 있는 문제이다.  큐는 선입선출 방식이지만 덱은 양방향으로 삽입과 삭제 ( popleft, appendleft )가 가능하며,   시간 복잡도가 O(1)이다.  코드import sysfrom collections import dequeinput = sys.stdin.readlineN, M = map(int, input().split())num = list(map(int, input().split()))q = deque(_ for _ in range(1, N + 1))count = 0for i in num: while True: if q[0] == i: ..
백준 / 1541번 / 잃어버린 괄호 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/1541  문제 접근이 문제는 괄호가 없는 식이 주어졌을 때, 예를 들어 2 + 3 - 10 + 5 + 22 라는 식이 있을 때 괄호를 넣어 식의 값을 최소로 만드는 코드를 작성해야 한다. 값이 최소가 되기 위해서는 '-'를 기준으로 사이에 있는 값들에 괄호를 넣으면 최솟값을 구할 수 있다. 따라서 입력을 받을 때 split('-')을 사용해 나누고,  이 나누어진 각각의 문자열의 연산 결과를 구하기 위해 split('+')을 하고, 그 값을 for문을 돌려 더한 뒤 tmp 배열에 넣는다. 이후 배열의 값들을 마이너스 연산을 하면 괄호를 넣어서 계산한 연산 결과와 동일한 결과를 얻을 수 있다. 코드n = input().split('-')t..
FastAPI로 RESTful API 구현하기
·
개발 | 프로젝트/API
이번에는 파이썬 프레임워크인 FastAPI로 RESTfulAPI를 구현해 보려고 합니다. FastAPI에 대한 설명과 설치 방법은 이전 글을 참고하시면 됩니다. Fast API란 / Fast API 설치Fast API란?파이썬 3.6부터 제공되는 트렌디하고 높은 성능을 가진 파이썬 프레임워크이다.기존에 대중적으로 사용되고 있는 Django, Flask와 더불어 성능적으로 우세함을 보장하는 FastAPI는 이름에 걸seulow-down.tistory.com  GET 기능 (전체 조회)/posts/ 엔드포인트를 추가합니다. GET 요청을 처리하며, 등록된 모든 블로그 포스트를 조회할 수 있습니다.get_all_posts 함수는 posts 딕셔너리에 저장된 모든 포스트를 리스트 형태로 반환합니다.  이렇게 하..
Fast API란 / Fast API 설치
·
개발 | 프로젝트/API
Fast API란?파이썬 3.6부터 제공되는 트렌디하고 높은 성능을 가진 파이썬 프레임워크이다.기존에 대중적으로 사용되고 있는 Django, Flask와 더불어 성능적으로 우세함을 보장하는 FastAPI는 이름에 걸맞게 빠른 속도를 자랑한다. 장고나 플라스크로 웹 서비스를 만들었다면 이에 대응하는 안드로이드, 아이폰 앱을 위한 API 개발을 따로 해야 하지만 FastAPI는 한번 만든 API를 여러 클라이언트에서 변경없이 사용할 수 있다는 장점이 있다.  Fast API 설치우선 FastAPI를 설치하기 위해선 3.6 이상의 파이썬이 설치되어야 한다.프로젝트를 진행할 폴더를 생성하고, 가상환경을 만들어준다.python -m venv [가상환경 이름]  가상환경 활성화하기call [가상환경 이름]/Scri..