Python

파이썬 웹개발

[장고 설계철학으로 시작하는 파이썬 장고 입문] 5. (실습) django template 시스템을 활용한 네이버 이메일 발송 시스템

✍ 실습 목표 - 템플릿 상속 문법 적용 - django-bootstrap5 라이브러리 적용 - 장고 템플릿 엔진을 통해 이메일 메세지 문자열을 조합하여, 메일 발송하기 1. 이메일 계정정보 설정하기 (1) 네이버 이메일 환경설정 변경 (2) 어플리케이션 접속을 위한 2단계 인증 관리 설정 변경 (3) 해당 application을 위한 환경변수 생성 일반적으로 계정정보들은 소스코드에 하드코딩 하지 않음. 환경변수를 쉽게 설정 및 변경하기 위해 프로젝트 최상위 폴더에 .env 파일을 생성하여 사용 .env 파일에서는 띄어쓰기를 하지 않아야하고, 절대 버전관리에 넣어서는 안된다.(.gitignore에 추가) 따라서 팀원 간 공유가 안되기에 개발머신마다 설정해주어야한다. 생성한 env를 적용하기 위해 djan..

파이썬 문제풀이

[프로그래머스 파이썬] 단어 변환

📌문제 출처 프로그래머스 LV 3 https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❓ 문제 📗 풀이 코드 ''' words를 순환하며 각 단어끼리 알파벳 하나 차이만 나는 것들을 words_dict에 담아둔다. begin부터 시작해서 words_dict의 word를 하나씩 꺼내서 bfs 진행 ''' from collections import defaultdict,deque def solution(begin, target, words): def ..

파이썬 문제풀이

[프로그래머스 파이썬] 호텔 대실

📌문제 출처 프로그래머스 LV 2 https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❓ 문제 📗 풀이 코드 ''' book_time을 ':'를 없애고 정수형태로 변경하고, 종료시간에 10분을 더한 후 heap 정렬한다. end_times이라는 heap 구조를 생성 book_time에서 heappop으로 시작 시간이 가장 빠른 손님을 뽑는다. 최초 손님의 경우 : room_cnt+1, eet(earlist_end_time)에 퇴장 시간 넣어주고 ..

파이썬 문제풀이

[프로그래머스 파이썬] 최고의 집합

📌문제 출처 프로그래머스 LV 3 https://school.programmers.co.kr/learn/courses/30/lessons/12938 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❓ 문제 📗 풀이 코드 ''' 1) s를 n으로 나눈 몫(t), 나머지(r)을 구하여 t가 s-r개, t+1이 r개 있는 list를 return 2) 몫이 0이면 return [-1] ''' def solution(n, s): t,r = divmod(s,n) return [t]*(n-r)+[t+1]*r if t else [-1]

파이썬 문제풀이

[프로그래머스 파이썬] 연속된 부분 수열의 합

📌문제 출처 프로그래머스 LV 2 https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❓ 문제 📗 풀이 코드 ''' 1) k보다 크면 작거나 같아질 때까지 첫 인덱스를 키워가며 누적합에 포함된 인덱스를 앞에서부터 줄인다. 2) k보다 작으면 작거나 같아질 때까지 끝 인덱스를 키워가며 누적합에 포함된 인덱스를 뒤로 늘린다. 3) 위 과정에서 해당 인덱스까지의 누적합이 k인 경우를 찾으면, 기존 ans와 비교해서 전체 인덱스의 길이가 짧은 것을 정답..

파이썬 웹개발

[장고 설계철학으로 시작하는 파이썬 장고 입문] 4. (실습) django template 상속, bootstrap5 적용

✍ 실습 목표 - 템플릿 상속 문법 적용 - django-bootstrap5 라이브러리 적용 - 장고 템플릿 엔진을 통해 이메일 메세지 문자열을 조합하여, 메일 발송하기 1. template 상속 (1) app/templates/app 경로에 base.html 생성 - 자식 template에서 상속받아서 내용을 넣을 공간을 만들어주는 것이 필수 (2) 자식 template 수정 - 상속받을 부모 template과 동일한 내용을 반복하지 말자. 상속 코드를 쳐주고, 다른 내용은 제거하고, 부모 template의 공간에 들어갈 코드만 넣어주자. 2. django-bootstrap5 적용 (1) django-bootstrap5 설치 pip install django-bootstrap5 # 터미널에서 설치 * ..

파이썬 웹개발

[장고 설계철학으로 시작하는 파이썬 장고 입문] 3. (실습) django models.py 활용 DB 연결

1. models.py 수정 2. manage.py migrate 이용 DB 생성 및 연결 CLI에서 manage.py를 작동시켜 migrations 폴더를 만들고 migrate로 DB와 동기화를 시킨다. 그리고 sqlmigrate app 0001을 확인하면 어떤 쿼리가 작동하였는지를 확인할 수 있다. migrations 폴더에는 0001_initial.py라는 파일이 생성되어있고, django.db로부터 migrations, models 함수를 활용해 테이블을 생성하는 쿼리가 작동됨을 알 수 있다. 이로써 우측 DB 목록에서 id, title, content라는 컬럼을 가진 app_post라는 테이블이 생성된 것을 확인할 수 있다. 3. admin 계정에 post 등록 이전에 만든 superuser 계..

파이썬 문제풀이

[프로그래머스 파이썬] 야근 지수

📌문제 출처 프로그래머스 LV 3 https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❓ 문제 📗 풀이 코드 ''' 야근피로도를 가장 줄이기 위해서는 가능한 모든 작업을 골고루 진행해서 최대값과 최소값의 차이를 줄여야한다. works에 -를 붙이고 heap 정렬을 시킨다. heappop으로 최대값을 뽑아내어 남은 것들 중 최대값보다 1이 작을때까지 일하기를 반복하자. ''' from heapq import heapify, heappush, heap..