분류 전체보기 290

4강 장고 인증 파트 : 해커톤 참가 신청 사이트 만들기 - 프로젝트 세팅

웹사이트의 구성 (행사 참가 신청 사이트 플로우) 회원가입은 곧 참가 신청이고, 참가자 신분으로 로그인을 할 수가 있음. 비로그인 상태의 첫 화면에는 행사 소개 페이지가 표시됨. 여기서 로그인 또는 회원가입을 할 수 있음. 회원가입을 선택하면 참가 정보 입력 페이지를 거침. 여기서 프로필 사진도 업로드함. 로그인 상태의 첫 화면에는 행사 소개 페이지가 표시됨. 여기서는 전체 참가자 목록 확인/참가 취소/로그아웃 을 할 수 있음. 만들어야 하는 페이지는 다음의 7개이다. 상태의 행사 소개 화면(로그인/비로그인 2개의 뷰) 로그인 화면 로그아웃 화면 회원가입 화면 참가 정보 수정 화면 전체 참가자 목록 화면 참가 취소 화면 실습 내용은 노션에 정리해두었다. https://www.notion.so/unis-e..

4강 장고 인증 파트 : 해커톤 참가 신청 사이트 만들기 - 세션과 쿠키

세션과 쿠키에 대해 설명해주신 5분짜리 강의. 세션이란? 접속한 사용자의 기기에 관하여 서버가 기억하고 있어야 하는 정보가 있을 때, 그 정보를 저장하는 공간을 세션이라 한다. 사용자가 웹사이트에 로그인을 한 뒤, 그 웹사이트 내의 다른 페이지로 이동하더라도 계속해서 로그인 상태가 유지되는 것은 세션 덕분이다. 세션을 이용한 로그인 과정 클라이언트가 서버에 첫 접속을 함. 서버의 세션 상에 지금 들어온 클라이언트의 세션 ID가 없음. 따라서 새로운 세션 ID를 발급해서 세션에 기억함. 이 ID를 클라이언트 기기에 전달함. 클라이언트 기기는 전달받은 세션 ID를 저장함. 사용자가 로그인을 함. 서버가 로그인 정보와 세션 ID를 함께 기억해둠. 클라이언트가 요청을 보낼 때마다 이 ID 및 로그인 정보를 그때..

#4779 : 칸토어 집합

풀이방법 사용된 것: 분할 정복 재귀 2022.05.19 전체가 '-'로만 채워진 문자열을 먼저 만들고, 함수 f가 특정 부분을 지우는 식으로 해결한다. 재귀적으로 정의된 함수 f는 다음과 같이 동작한다. 주어진 문자열을 세 부분으로 동등하게 쪼갠다. 주어진 문자열의 가운데는 지운다. 주어진 문자열의 왼쪽과 오른쪽에 대하여는 재귀를 한다. 따라서 갈수록 더 짧은 부분에 대하여 재귀를 해나가게 된다. 주어진 문자열의 길이가 1이 되었을 때가 base case이다. 이때 재귀를 종료한다. 코드 Java(2022.05.19) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java..

#3009 : 네 번째 점

풀이방법 사용된 것: ArrayList 2022.05.20 출력해야 하는 점의 x좌표와 y좌표는 세 번의 입력 중 단 한 번만 나온다. 두 번 나오는 값은 무시하고 딱 한 번 나온 x좌표와 딱 한 번 나온 y좌표를 출력하면 된다. ArrayList를 x좌표를 위한 것 하나, y좌표를 위한 것 하나를 만든다. 3개의 좌표값을 읽어오면서 처음 나온 값은 ArrayList에 저장을 하고 두 번째 나온 값은 ArrayList에서 지운다. 그럼 세 좌표값을 모두 읽은 후에는 각각의 ArrayList에 값이 하나씩만 남는다. 그 값들이 정답이다. 코드 Java(2022.05.20) import java.io.BufferedReader; import java.io.IOException; import java.io.I..

초급 7회차 이분탐색 & 분할정복

이분탐색과 분할정복 모두 문제를 쪼개어 해결하는 방식임. 쪼갠다는 것은 무엇인가 문제의 크기가 크면 어렵다. 문제를 작은 부분 문제들로 나누어 풀면 쉬워진다. 문제를 쪼개고, 부분 문제들을 풀고, 그 결과를 병합한다. 문제를 쪼개는 것 & 결과를 병합하는 것의 비용이 크지 않다면 쪼개어 푸는 게 이득이다. 이분탐색의 간단한 설명 주어진 값들을 오름차순으로 정렬했다고 하자. 이 정렬된 리스트 내에서 특정 값 N의 위치를 이분탐색법으로 찾아보자. 중앙값을 콕 찝는다. 중앙값이 N보다 큰지 작은지 확인한다. 중앙값이 N보다 작다면 중앙값의 다음부터 리스트 끝까지의 범위에 N이 있다. 반대로 중앙값이 N보다 크다면 리스트의 처음부터 중앙값 이전까지의 범위에 N이 있다. 이러한 점검을 반복해나가면서 N이 있을 수..

#2447 : 별 찍기 - 10

풀이방법 사용된 것: 분할 정복 재귀 2022.05.18 분할 정복 문제이고, 재귀적으로 정의된 함수를 사용한다. 사용된 전역변수는 char[][] print : 출력할 별 그림 이렇게 하나이다. 사용된 함수 star()의 구조를 간단히 설명하자면 다음과 같다. 함수 star() 개요 star()은 특정 영역에 대하여, 영역의 한 변의 길이가 3이라면 해당 영역에 3x3짜리 별 그림을 직접 찍고, 영역의 한 변의 길이가 3보다 크다면 재귀를 수행하는 함수이다. 매개변수 int row : star()에서 다룰 영역의 시작부분(가장 왼쪽 위 지점)의 열 좌표 int col : star()에서 다룰 영역의 시작부분(가장 왼쪽 위 지점)의 행 좌표 int len : star()에서 다룰 영역의 한 변의 길이 작..

#2630 : 색종이 만들기

풀이방법 사용된 것: 분할 정복 재귀 2022.05.18 분할 정복 문제이고, 재귀적으로 정의된 함수를 사용한다. 사용한 전역변수는 다음과 같이 3개이다. boolean[][] paper : 종이 정보. 파란색인 부분은 true, 하얀색인 부분은 false로 저장한다. int answer_w : 첫 줄에 출력될 정답. 완성된 하얀 색종이의 개수를 저장한다. int answer_b : 둘째 줄에 출력될 정답. 완성된 파란 색종이의 개수를 저장한다. 먼저 종이 정보를 읽어오고, answer_w와 answer_b를 0으로 초기화시키고, 함수 cut()을 수행하고, answer_w와 answer_b를 출력하면 된다. cut()의 구성은 다음과 같다. 함수 cut() 개요 cut()은 주어진 영역의 색이 통일되어..

#1269 : 대칭 차집합

풀이방법 사용된 것: HashSet 2022.05.16 해시셋을 사용하였다. 집합 A의 원소들을 읽어와 해시셋에 저장한다. 집합 B의 원소들에 대하여, 해시셋에 이미 들어있는 수라면 해시셋에서 해당 수를 제거한다. 해시셋에 없는 수라면 해시셋에 새로 추가한다. 위의 과정이 끝난 후, 해시셋의 크기를 화면에 출력한다. 코드 Java(2022.05.16) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashSet; import java.util.StringTokenizer; public class Main { public static void main(Str..

3강 장고 기본 파트 : 투표 사이트 만들기 - 템플릿

return HttpResponse() 의 괄호 안에 html 코드를 넣으면 그게 화면에 출력됨. html 코드를 미리 짜두고, 거기에 필요한 변수들을 정해둔 다음 그 변수만 장고를 통해 전달해주면 그 결과를 장고가 화면에 나타내줌. 장고가 화면에 나타내주는 것을 렌더링이라고 함. 그리고 서버 실행중일 때 Ctrl + C 누르면 서버 종료됨. html 파일 내에서 for, if 등 구문(문장)을 써넣을 때에는 {% 내용내용 %} 이렇게 씀! 그냥 변수를 쓸 때는 걍 쓰는데... 구문은 저러고 써야함 url urls.py 파일에서 url들마다 name을 지정해줄 수 있음. html 파일에서 url을 적을 때 url 그 자체를 적지 말고 urls.py에서 지정해준 name 문자열을 사용하는 것이 좋음. ht..