no image
[자료구조] Fenwick Tree(Binary Indexed Tree, BIT) with Python
목차 팬윅 트리? 구현 업데이트 1. Fenwick Tree ? Segment Tree 처럼 구간에 대한 연산을 저장하는 트리 Segment Tree 보다 적은 메모리로 사용 가능하다!! 절반 정도의 메모리만으로 사용 가능 시간 복잡도 O(logN) 비트를 이용한 구간 연산을 진행한다. Q. 3~5번째 인덱스 구간 합을 구하기 A. 두 구간의 차를 구하면 된다. 5번 인덱스까지의 값을 구하려면 2진수 101 인덱스 값과 100 인덱스 값을 더하면 된다. 101 인덱스에서 마지막 1의 값을 제거해주면 100이 된다. Q. 마지막 2진수 1의 값을 제거하는 방법은? Answer. N = N - (N & -N) 5 - ( 5 & -5 ) = 4 4 - ( 4 & -4 ) = 0 2. 구현 Val = 1 ind..
2022.11.30
[백준 16928번] 파이썬 - 뱀과 사다리 게임
https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net # 조건 주사위를 조작해 내가 원하는 수가 나오게 만들 수 있다면, 최소 몇 번만에 도착점에 도착할 수 있을지 구하라 크기가 10x10이고 총 100개의 칸으로 나누어져 있다. 플레이어가 i번 칸에 있고, 나온 수가 4라면, i+4번으로 이동해야한다. 결과가 100번을 넘어간다면 이동할 수 없다. 도착한 칸이 사다리면, 사다리를 타고 위로 올라간다. ..
2022.11.29
no image
[Vue] Vue with DRF (feat.CORS)
1. Article Read 응답 받은 데이터 구조 확인 'data Array'에 각 게시글 객체 각 게시글 객체는 다음으로 구성 id title content store/index.js 수정 기존 articles 데이터 삭제 Mutations 정의 응답 받아온 데이터를 state에 저장 2. Article Create views/CreateView.vue 코드 확인 게시글 생성을 위한 form을 제공 v-model.trim을 활용해 사용자 입력 데이터에서 공백 제거 .prevent를 활용해 form의 기본 이벤트 동작 막기 views/CreateView.vue 코드 확인 title, content가 비었다면 alert를 통해 경고창을 띄우고 AJAX 요청을 보내지 않도록 return 시켜 함수를 종료 ..
2022.11.14
no image
[Vue] CORS
목차 Cross-Origin Resource Sharing How to set CORS 1. Cross-Origin Resource Sharing What Happened? 브라우저가 요청을 보내고 서버의 응답이 브라우저에 도착 Server의 log는 200(정상) 반환 즉 Server는 정상적으로 응답했지만 브라우저가 막은 것 보안상의 이유로 브라우저는 동일 출처 정책(SOP)에 의해 다른 출처의 리소스와 상호작용 하는 것을 제한 함 SOP(Same - Origin Policy) "동일 출처 정책" 불러온 문서나 스크립트가 다른 출처에서 가져온 리소스와 상호작용 하는 것을 제한하는 보안 방식 잠재적으로 해로울 수 있는 문서를 분리함으로써 공격받을 수 있는 경로를 줄임 https://developer.m..
2022.11.14
no image
[Vue] Vue with DRF
1. Again DRF lab.ssafy의 Skeleton code 확인 Model 구조 확인 요청 경로 확인 미리 준비해둔 Dummy data 확인 및 데이터 삽입 서버 실행 후, 전체 게시글 조회 Browser에서 serve에 전체 게시글 조회 요청 => 데이터 반환 확인 Postman에서 올바른 방법으로 요청 => 데이터 반환 확인 2. Back to Vue Skeleton code 확인 front-server 폴더 구조 확인 및 서버 구동 준비 컴포넌트 구조 확인 메인 페이지 구성 views/ArticleView.vue component 확인 및 route 등록 src/App.vue router-link 주석 해제 및 결과 확인 components/ArticleList.vue 확인 전체 게시물을 ..
2022.11.14
no image
[Vue] Server & Client
목차 Server & Client 1. Server & Client 서버(server)란 ? 클라이언트에게 정보와 서비스를 제공하는 컴퓨터 시스템 서비스 전체를 제공 == Django Web Service 정보를 제공 == DRF API Service 서비스 전체를 제공 == Django Web Service Django를 통해 전달받은 HTML에는 하나의 웹 페이지를 구성할 수 있는 모든 데이터가 포함 즉, 서버에서 모든 내용을 렌더링 하나의 HTML 파일로 제공 정보를 포함한 web 서비스를 구성하는 모든 내용을 서버 측에서 제공 정보를 제공 == DRF API Service Django를 통해 관리하는 정보만을 클라이언트에게 제공 DRF를 사용하여 JSON으로 변환 Client Server가 제공하..
2022.11.14
[백준 12015번] 파이썬 - 가장 긴 증가하는 부분 수열2
http://www.acmicpc.net/problem/12015 12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net # 조건 수열 A가 주어졌을 때 가장 긴 증가하는 부분 수열을 구하라 # 접근 방법 이전의 하위 문제처럼 DP를 이용하여 이전 값들을 모두 순회한다면 수열 A의 크기 1,000,000 이하 이므로 시간초과가 난다. 따라서, 현재 값들을 dp테이블에 추가해주며, dp에서 가장 큰 수보다 크다면 append, 아니라면 들어갈 수 있는 자리를 찾아서 넣어준다. 찾는 모듈은 bisect를 이용해준다. im..
2022.11.10
[백준 11053번] 파이썬 - 가장 긴 증가하는 부분 수열
http://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net # 조건 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하라 A = {10, 20, 10, 30, 20, 50} 인 경우 가장 긴 증가하는 부분 수열은 10, 20, 30, 50 이고 길이는 4이다. # 접근 방법 dp를 이용해준다. 현재 인덱스의 숫자를 기준으로 이전의 숫자를 모두 훑어 준다. 1번부터 채워가..
2022.11.10
[백준 15657번] 파이썬 - N과 M(8)
http://www.acmicpc.net/problem/15657 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net # 조건 N개의 자연수와 자연수 M이 주어질 때 아래 조건 만족하는 길이가 M인 수열 모두 구하라. N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순 # 접근 방법 자기 자신과의 선택도 가능하므로 중복조합 이용해준다. combinations_with_replacement from itertools import combinations_with_r..
2022.11.09