Python(62)
-
백준 19941 풀이
문제 https://www.acmicpc.net/problem/19941 19941번: 햄버거 분배 기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사 www.acmicpc.net 기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 K 이하인 햄버거를 먹을 수 있다. 햄버거 사람 햄버거 사람 햄버거 사람 햄버거 햄버거 사람 사람 햄버거 사람 1 2 3 4 5 6 7 8 9 10 11 12 위의 상태에서 K = 1인 경우를 생각해보자. 이 경우 모든 사람은 자신과 인접한 햄버거만 먹을 수 있다. 10번의 ..
2024.04.04 -
프로그래머스 [기사단원의 무기]
풀이 전에 백준에서 약수를 구하는 문제를 풀었던 기억으로 수월하게 해결할 수 있었다. def solution(number, limit, power): answer = 0 for n in range(1, number+1): cnt = 2 for i in range(2, int(n**(1/2))+1): if n%i == 0: cnt += 2 if i**2 == n: cnt -= 1 if cnt > limit: answer += power else: answer += cnt return answer-1 의식의 흐름대로 적다가 answer-1을 반환하게 되었는데, 왜 이렇게 적었는지 생각하다가 cnt를 0부터 시작해서 answer만 반환하는 방법도 적어봤다. 실행 시간은 처음 코드가 더 빠르다. i**2 != ..
2024.04.03 -
Pydantic
[점프 투 FastAPI] 2-04-3 Pydantic으로 입출력 스펙을 정의한다. Pydantic에 대해 왜 사용하고 어떤 기능을 하는지 자세히 알아보자. Pydantic Request, Response 모델 정의. type annotation으로 데이터 검증과 설정 관리. 입출력 항목의 개수와 타입 설정. 입출력 항목의 필수값 체크. 유저 친화적 에러 제공. parsing 라이브러리로, 입력값을 정의된 타입으로 변환하여 모델의 타입과 제약 조건 보장. JSON이나 dict 변환 가능. BaseModel 아래와 같이 타입을 정의하고 설정한 타입과 일치하지 않으면 에러를 발생시킨다. UUID(Universally Unique IDentifier) : 고유성 보장, 주로 db의 Primary Key로 사용..
2024.04.02 -
프로그래머스 [자연수 뒤집어 배열로 만들기], [햄버거 만들기]
[자연수 뒤집어 배열로 만들기] 풀이 def solution(n): n = str(n) len_n = len(n) answer = [0]*len_n for i in range(len_n-1, -1, -1): answer[len_n-i-1] = int(n[i]) return answer [햄버거 만들기] 풀이 일단 문제부터 1,2,3,1에 충족이 안 되더라도 전부 저장해뒀다가 순서대로 나타나면 합치는 건 줄 알아서 헤맸다. li = [2,1,1,2,3,1,2,3,1]에서는 li[2]부터 li[5]가 포장되어 배열에서 삭제되기 때문에 li[2]와 li[6:]이 맞닿게 된다. 때문에 답은 2가 된다. 이해하고 코드를 다시 작성했는데 시간 초과다. def solution(ingredient): answer = ..
2024.04.01 -
프로그래머스 [콜라츠 추측], [크기가 작은 부분 문자열]
[콜라츠 추측]_비기너 풀이 def solution(num): answer = 0 while answer 1: if num % 2 == 0: num //= 2 else: num = num * 3 + 1 answer += 1 return answer if num == 1 else -1 [크기가 작은 부분 문자열]_미들러 풀이 t의 길이 - p의 길이 + 1개의 문자열을 t에서 추출하여 p와 비교한다. 가장 큰 자릿수부터 비교하며 t와 p가 같은 자릿수에서 대소 구분이 가능하면 break, 같은 숫자라면 다음 자릿수를 비교한다. def solution(t, p): answer = 0 p_len = len(p) for i in range(0,len(t)-p_len+1): for j..
2024.03.31 -
의존성 주입_Depends
[점프 투 FastAPI] 2-04-2에서 @contextlib.contextmanager과 함께 with문을 사용해서 세션을 할당하고 반환하는 과정을 FastAPI의 Depends로 간단히 수정했다. Depends와 의존성 주입은 뭐지? from fastapi import APIRouter, Depends from sqlalchemy.orm import Session from database import get_db from models import Question router = APIRouter( prefix="/api/question", ) @router.get("/list") def question_list(db: Session = Depends(get_db)): _question_list = ..
2024.03.30