파이썬 (20) 썸네일형 리스트형 [Airflow] Airflow 예제를 통한 DAG 구조 확인 및 실행 참고도서 : Apache Airflow 기반의 데이터 파이프라인 가장 기본이 되는 예제를 연습해보았습니다. 환경 : Vscode, WSL2 (Ubuntu 20.04), anaconda(python 3.10) 1. 환경설정 airflow 설치를 위해 아나콘다에서 가상환경을 생성합니다. conda create -n airflow python=3.10 conda activate airflow 가상환경에서 airflow와 virtualenv를 설치합니다. # airflow 설치 pip install apache-airflow # virtualenv 설치 pip install virtualenv # 설치하지 않은 경우 web ui에서 다음과 같은 에러로그를 출력하였음. #Broken DAG: [/home/kwan.. [프로그래머스] 달리기 경주 (lv1, Python) https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 아이디어 맨 처음엔 리스트끼리 자리를 바꿔주면 되겠다 라고 생각해서 작성해봤는데... 시간 초과 다시 보니까 입력값이 굉장히 커서 10초안에 수행될 수 없었다. 선수 이름과 순위를 키값으로 하는 딕셔너리 두 개를 선언하여 각 키의 값을 수정하는 방식으로 소스코드를 작성함. 리스트를 계속해서 갱신할 경우, 인덱스 전체가 정렬되어 시간이 많이 걸리지만, 딕셔너리의 경우 대응하는 키의 값만.. [백준] 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(.. [백준] 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.. 이전 1 2 3 다음