[백준 1003번] 파이썬 - 피보나치 함수
https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net # 조건 피보나치 함수는 f(n ) = f(n-1) + f(n-1)의 성질을 가진다. 정수 n이 주어졌을 때 0과 1이 몇 번 출력되는지 구하여라. # 접근 방법 문제에 주어진대로 재귀를 이용하여 구해봤지만 역시나 시간초과. 메모이제이션을 이용해봐도 시간초과가 나게 되었다. 0과 1이 출력되는 횟수가 수가 증가함에 따라 각각 피보나치 함수와 동일하게 출력됨을 발견 따라서 dp table을 따로 만들어 준 후 입력 n에 대해 횟수를 출력시켜준다. # 시간초과 코드 def fibo(n): glob..
2022.09.19
no image
[Django] Authentication with User
로그인과 로그아웃의 로직을 이해했다면, 이제 유효한 데이터를 저장하기 위한 회원가입에 대해 알아보자. User Object와 User CRUD에 대해 이해할 수 있을 것이다. (회원 가입, 회원 탈퇴, 회원정보 수정, 비밀번호 변경) 목차 회원가입 Custom user & Built-in auth forms 회원 탈퇴 회원정보 수정 비밀번호 변경 1. 회원 가입 Login과 Logout이 Session에 대한 과정이었다면, 회원가입은 User를 Create하는 것이며 UserCreationForm built-in form을 사용한다. UserCreationForm 주어진 username과 password로 권한이 없는 새 user를 생성하는 ModelFrom 아래 3개의 필드를 가진다. username ..
2022.09.19
no image
[Django] Authentication in Web requests
웹 요청에 따른 인증 및 권한을 알아보기 전에 Django가 제공하는 built-in forms를 익히자 https://docs.djangoproject.com/en/3.2/topics/auth/default/#module-django.contrib.auth.forms Using the Django authentication system | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate docs.djangoproject.com 목차 Login Authentica..
2022.09.19
no image
[Django] HTTP Cookies
앞서 AUTH_USER_MODEL에 대해 설정을 마쳤다면, 이제 로그인과 로그아웃을 이해하기 전 반드시 알아야 하는 HTTP Cookies를 알아보자. 목차 HTTP Cookie Session 1. HTTP 인터넷을 사용하며 url 제일 앞에 붙어있는 것을 많이 봤을 것이다. Hyper Text Transfer Protocol HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜 (규칙, 규약) 웹(WWW)에서 이루어지는 모든 데이터 교환의 기초 클라이언트 - 서버 프로토콜이라고도 부름 요청과 응답 요청(requests) 클라이언트(브라우저)에 의해 전송되는 메시지 응답(response) 서버에서 응답으로 전송되는 메시지 특징 비 연결 지향(connectionless) 서버는 요청에 대한 응..
2022.09.19
no image
[Django] Authentication System
홈페이지를 구성하며 CRUD를 다루는 방법을 배웠는데, 보통 일반인이 들어가서 CRUD를 하기 위해서는 회원가입의 절차가 필요하다. 우리는 관리자로서 인증된 User에게 권한을 부여하여 우리의 서비스를 이용하게 해준다. 목차 authentication system Substituting a custom User model 과정 db 초기화 1. authentication system 인증(Autentication)과 권한(Authorization) 부여를 함께 제공(처리)하며, 이러한 기능을 일반적으로 인증 시스템이라고 함 필수 구성은 settings.py에 이미 포함되어 있으며 INSTALLED_APPS에서 확인 가능 django.contrib.auth Authentication(인증) 신원 확인 사용..
2022.09.18
[백준18111번] 파이썬 - 마인크래프트
https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net # 조건 1 x 1 x 1 크기의 블록들로 이루어진 3차원 세계 땅을 고르게 해야 집을 지을 수 있다. 세로 N, 가로 M 크기의 집터 좌표 (i, j)의 가장 위에 있는 블록을 제거하여 인벤토리에 넣는다. 인벤토리에서 블록하나를 꺼내어 좌표 (i, j)의 가장 위에 있는 블록 위에 놓는다. 1번 작업은 2초, 2번 작업은 1초 인벤토리에 B개의 블록 들어있고 256의 높이 초과 불가 걸리는 최..
2022.09.18
[백준 10989] 파이썬 - 수 정렬하기 3
https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net # 조건 N개의 수가 주어질 때, 오름차순으로 정렬하여라. 첫 줄에 수의 개수 N(1
2022.09.17
[백준 2805] 파이썬 - 나무 자르기
https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net # 조건 나무 M미터 필요한 상근이 목재 절단 높이 H설정 높이가 H보다 높은 나무는 H위의 부분 절단 자른 부분을 들고 집에 간다. H는 양의 정수 또는 0 필요한만큼만 들고 간다고 할 때, M미터의 나무를 집에 가져가기 위한 설정할 수 있는 높이의 최댓값 # 접근방법 브루트포스로 한다면 시간초과가 발생하기 때문에 이분탐색을 활용 처음엔 시작, 끝점을 중간..
2022.09.17
[백준 2108] 파이썬 - 통계학
https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net # 조건 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 첫째 줄에는 산술평균을 출력한다. 소수점 이하 첫째 자리에서 반올림한 값을 출력한다. 둘째 줄에는 중앙값을 출력한다. 셋째 줄에는 최빈값을 출력한다. 여러 개 있을 때에는 최빈값 ..
2022.09.16