[백준 1697] 파이썬 - 숨바꼭질
https://www.acmicpc.net/problem/1697 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net # 조건 수빈이는 현재 점 N(0= k: return n - k elif k == 1: return 1 # 홀수인경우 도착지점+1, 도착지점 -1만 탐색하며 +1 해준다. elif k % 2: return min (find(n, k + 1), find(n, k - 1)) +1 # 짝수인 경우 시작점-도착점, k//2+1 중 최소값으로 갱신해준다. # 또한 k//2 로 이동하여 출발점까지 고고 e..
2022.10.05
no image
[DB] DML3 - Grouping, Changing data
앞선 글들에서는 조회 및 필터링을 이용한 중복 제거, 조건 설정 등 쿼리를 제어하는 방법에 대해 알아보았다. 이번 글에서는 특정 그룹으로 묶어주는 Grouping과 데이터를 삽입, 수정, 삭제하는 법에 대해 알아보자 목차 Grouping data Insert Update Delete 1. GROUP BY clause SELECT column_1, aggregate_function(column_2) FROM table_name GROUP BY column_1, column_2; Make a set of summary rows from a set of rows 특정 그룹으로 묶인 결과를 생성 선택된 컬럼 값을 기준으로 데이터(행)들의 공통 값을 묶어서 결과로 나타냄 SELECT 문에서 선택적으로 사용 가능한..
2022.10.05
no image
[DB] DML2 - Filtering data
앞에서는 조회와 정렬에 대해서 볼 수 있었다. 이번엔 데이터를 필터링하여 중복 제거, 조건 설정 등 쿼리를 제어해보자. Clause SELECT DISTINCT WHERE LIMIT Operator LIKE IN BETWEEN 목차 SELECT DISTINCT WHERE clause LIKE Operator IN Operator BETWEEN Operator LIMIT clause 1. SELECT DISTINCT clause SELECT DISTINCT select_list FROM table_name; "Remove duplicate rows in the result" 조회 결과에서 중복된 행을 제거 DISTINCT 절은 SELECT에서 선택적으로 사용할 수 있는 절 문법 규칙 DISTINCT 절은 ..
2022.10.05
no image
[DB] DML1 - simple query, Sorting rows
DML (Data Manipulation Language)로서 데이터를 조작하는 데 사용되는 언어이다. (CRUD) 목차 사전 준비 Simple query Sorting rows 1. 사전 준비 우선 데이터 더미들을 .csv로 저장 후 해당 csv 파일 데이터를 import 해서 사용해주어야 한다. sqlite3 기본 사용법 1. 시작하기 2. 데이터베이스 파일 열기 3. 종료하기 CSV 파일을 SQLite 테이블로 가져오기 1. DML.sql 파일 생성 (새로운 파일 생성) 2. 테이블 생성하기 3. 데이터베이스 파일 열기 4. 모드(.mode)를 csv로 설정 5.. import 6. import 된 데이터 확인하기 sqlite3 tool에서도 SQL 문을 사용할 수 있지만, 편의와 명령어 기록을 위..
2022.10.05
no image
[DB] DDL2 - ALTER, DROP TABLE
데이터베이스에 새 테이블을 만들기 위한 CREATE에 대해서 알아보았다. 이번엔 수정과, 삭제를 위한 ALTER, DROP TABLE을 알아보자. 목차 ALTER TABLE DROP TABLE 1. ALTER TABLE "Modify the structure of an existing table" 기존 테이블의 구조를 수정(변경) SQLite의 ALTER TABLE 문을 사용하면 기존 테이블을 아래와 같이 변경 가능 Rename a table Rename a column ADD a new column to a table Delete a column https://www.sqlite.org/lang_altertable.html ALTER TABLE RENAME "Rename a table" 앞서 작성했던 ..
2022.10.05
no image
[Django] Limiting access to logged-in users
앞서 회원가입, 로그인 등에 알아볼 수 있었다. 이번 글에서는 로그인 사용자에 대한 접근 제한에 대해 알아보자. 로그인 사용자에 대해 접근을 제한하는 방법은 아래 두 가지가 있다. The raw way is_authenticated attribute The login_required decorator 목차 is_authenticated attribute The login_required decorator 1. is_authenticated attribute User model의 속성(attributes) 중 하나 사용자가 인증되었는지 여부를 알 수 있는 방법 모든 User 인스턴스에 대해 항상 True인 읽기 전용 속성 AnonymousUser에 대해서는 항상 False 일반적으로 request.user..
2022.10.05
no image
[DB] DDL1 - create table
SQLite3를 설치한 후 vscode에서 실습을 하며 DDL을 이해하며 알아가보자. 목차 사전 준비 CREATE TABLE SQLite Data Types Constraints 1. 사전 준비 SQLite 설치 - https://www.sqlite.org/download.html 접속하여 C 드라이브 - sqlite 폴더 생성 후 위 사진에서의 파일 2개 압축 풀기 시스템 환경 변수 -> 시스템 변수의 PATH -> 1번에서 생성한 폴더 경로 작성 winpty sqlite3를 통해 실행 가능 Vscode SQLite 확장프로그램 설치 확인 이후 데이터베이스 mydb.squlite3 파일 생성 DDL.sql 파일 생성 vscode 실행 후 DDL.sql 화면에서 마우스 우측 버튼 클릭 -> Use Dat..
2022.10.04
no image
[DB] SQL
앞에 글에서 DBMS의 데이터를 관리하기 위한 언어라고 볼 수 있었다. 간단하게만 알아보자! 목차 SQL? SQL Commands SQL Syntax 1. SQL이란 "Structured Query Language" RDBMS의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어 RDBMS에서 데이터베이스 스키마를 생성 및 수정할 수 있으며, 테이블에서의 자료 검색 및 관리도 할 수 있음 데이터베이스 객체에 대한 처리를 관리하거나 접근 권한을 설정하여 허가된 사용자만 RDBMS를 관리할 수 있도록 할 수 있음 많은 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택하고 있음 즉, SQL은 데이터베이스와 상호작용하는 방법 2. SQL Commands 특성에 따라 아래 세 가지 그룹으로 분류 DDL..
2022.10.04
no image
[DB] 데이터 베이스?
앞에서 Django를 배우면서 Model을 만들어주면 생기는 Data들을 볼 수 있었다. 그런 data들이 저장되는 곳이 db.sqlite3와 같이 곳이 있었는데 이걸 기반으로 데이터 베이스에 대해 알아보자. 목차 Intro 정의 및 RDB 1. Intro 지금은 데이터의 시대 세상에는 수많은 데이터들이 존재한다. 인터넷만 떠올려봐도 셀 수 없이 많은 데이터가 지금 이 순간에도 우리가 사용하는 웹 서비스나 애플리케이션 등을 통해 생성 수정 삭제 되고 있다. 과거와 달리 이러한 데이터 규모는 점점 더 빠른 속도로 증가하고 있고, 이 데이터를 다루는 기술 또한 점점 중요해지고 있다. 데이터 베이스의 등장 이러한 서비스 혹은 애플리케이션들이 데이터들을 저장하는 곳 데이터베이스 파일을 이용한 데이터 관리 우리는..
2022.10.04