본문 바로가기

반응형

전체 글

(71)
[백준] 10798번: 세로읽기(브론즈1, Python) https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 문제 해결 아이디어 입력되는 문자열에 list 함수를 사용하여, 문자열을 모두 분리 문자열 5줄이 입력되므로 for문을 사용해도 되고, while문으로 입력이 다르게 들어올 경우를 대비해도 좋다. 입력된 배열들의 길이를 확인하여 가장 긴 배열의 길이를 확인한다. 최대 길이의 배열만큼 값을 확인하고 만약 더 짧은 배열이라면 except문을 사용하여 다음 배열로 이동 최종 출력값을 저장할 변수..
[백준] 2738번: 행렬 덧셈 (브론즈5, Python) https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 문제 해결 아이디어 입력 첫 번째 줄에 배열의 모양이 제시되고, 행*2번 입력값이 들어오는 형태 C언어같이 메모리 관리를 하기 위해서는 array 선언 시 열의 갯수도 지정했겠지만... 그냥 빈 리스트로 선언하였음. 2*행 번의 for문을 통해 행보다 작으면 1차원 배열을 빈 리스트에 추가하고, 이후부터 첫번째 행부터 차례로 덧셈을 진행하였음. 답안 출력은 한 행씩 출력 소스 코드 ..
[FastAPI] 3. pydantic 모델을 사용한 요청 바디 검증 개발환경 : WSL2 (Ubuntu 20.04), Python 3.10 (anaconda 가상환경) pydantic 모델을 사용한 요청 바디 검증 FastAPI에서는 정의된 데이터만 전송되도록 요청 바디를 검증할 수 있음. (매우 중요한 기능!!) 다음은 model.py 작성 코드이다. from pydantic import BaseModel class Todo(BaseModel): id: int item: str 이 코드는 다음 두 개의 필드만 허용하는 pydantic 모델을 만든다. 정수형(int)인 id 문자열형(str)인 item 이 모델을 POST 라우트에 사용해보자. todo.py 파일에 다음과 같이 모델을 임포트 한다. from fastapi import APIRouter from model ..
[백준] 2566번: 최댓값 (브론즈3, Python) https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 문제 해결 아이디어 함수 내에 최대값과 인덱스 위치를 저장할 변수 선언 (val, loc) 한 행씩 불러오며 값을 하나씩 확인하고, 크거나 같은 경우 val과 loc을 업데이트 (최대값이 두개 이상인 경우 한 곳의 위치를 출력하면 됨.) 위치를 저장할 때 1씩 더해줌 (index 0 부터 시작) loc을 리스트로 받고 출력 시 값을 풀어서 표현해줌 print(*) 소스 코드 (Python) def max_val81(..
[FastAPI] 2. 라우팅(Routing) 개발환경 : WSL2 (Ubuntu 20.04), Python 3.10 (anaconda 가상환경) 라우팅(Routing) 웹 애플리케이션을 구축하는 데 있어 핵심적인 부분 클라이언트가 서버로 보내는 HTTP 요청을 처리하는 프로세스 HTTP 요청이 지정한 라우트로 전송되면 미리 정의된 로직이 해당 요청을 처리해서 반환(응답) 이번 포스팅에서는 여러 함수를 사용하는 연속적인 라우트 처리를 FastAPI 클래스를 통해 구현해보자. APIRouter 클래스를 사용한 라우팅 APIRouter 클래스는 다중 라우팅을 위한 경로 처리 클래스로, fastapi 패키지에 포함돼있음. 라우팅 메서드는 다음과 같이 APIRouter() 인스턴스를 사용해 생성한다. todo.py라는 새로운 파일을 작성 from fasta..
[백준] 2444번: 별 찍기 - 7 (브론즈3, Python, for문 한번 사용) https://www.acmicpc.net/problem/2444 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 해결 아이디어 1. 내 구현 코드를 여러번 확인해가면서 문제를 풀었음. 2. for문 한번에 해결할 수 있지 않을까 라는 물음에서 규칙성을 찾기 위해 노력함. 3. ans라는 문자열 변수를 선언하여 공백과 별을 추가한 후 출력 4. n이 주어졌을 때, 출력되는 행의 수는 2n-1임. (5를 입력하면 9줄이 출력돼야함.) 5. n번째 행을 기점으로 별의 수는 감소. 공백은 증가 6. n을 기준으로 n보다 작거나 같을 때의 규칙, n보다 클때의 규칙을 고민해봄. 7. n=5를 예시로 규칙 찾아보기 * *** ***** **..
[백준] 25206번: 너의 평점은 (실버5, Python) https://www.acmicpc.net/problem/25206 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net 문제 해결 아이디어 1. 학점 중 P학점은 평점에 포함되지 않는다. (예외처리 필요!!) 2. 입력은 20번 들어온다. 하지만 더 많은 입력값이 들어올 것을 대비하여 예외문을 삽입 (try, except) 3. 누적 값을 저장할 변수를 미리 선언해준다. 4. 각 평점에 대응하는 딕셔너리를 미리 선언하였음. 5. 결과값 출력은 소수점 6번째 자리까지 반올림 하였음. (내 맘) 소스코드 (Python) d..
[FastAPI] 1. FastAPI 시작하기 (환경 구축) 개발환경 : WSL2 (Ubuntu 20.04), Python 3.10 (anaconda 가상환경) 처음은 간단한 애플리케이션을 구축해보면서 FastAPI를 경험해보는 시간. 1. 라이브러리 설치 및 소스코드 작성 애플리케이션 개발에 필요한 라이브러리와 패키지를 설치 pip install fastapi uvicorn 이제 api.py라는 파일을 만들어 FastAPI의 새 인스턴스를 생성함. from fastapi import FastAPI app = FastAPI() app 변수에 FastAPI를 초기화해서 라우트를 생성할 수 있다. 웰컴 라우트를 만들어보자. 우선 데코레이터를 사용해 처리 유형을 정의하고 라우트가 호출됐을 때 실행할 처리를 함수로 작성함. 다음 코드는 GET 유형의 요청을 받아서 환영 ..

반응형