분류 전체보기 40

재귀 호출

함수 안에서 동일한 함수를 호출하는 형태(반복문을 많이 활용하다보니 속도가 중요한 AI에서는 불리한 방식인 것 같다.) 팩토리얼?n! = n * (n-1)!5! = 5 * 4 * 3 * 2 * 13! = 3 * 2 * 1해당 수에서 1까지의 곱 1. 팩토리얼 구현def factorial(num): if num > 1: return num * factorial(num-1) else: return numfor num in range(5): print(factorial(num)) 0 1 2 6 24  2. 재귀 호출def palindrome(word): if len(word) == 1: return True elif word[0] == word[-1]: return palin..

Python/알고리즘 2024.10.22

기본 정렬

정렬(sorting)이란?어떤 데이터들이 주어졌을 때 이를 정해진 순서대로 나열하는 것 정렬은 프로그램 작성 시 빈번하게 필요로 함 다양한 알고리즘이 고안되었으며, 알고리즘 학습의 필수 다양한 정렬 알고리즘 이해를 통해 동일한 문제에 대해 다양한 알고리즘이 고안될 수 있음을 이해하고, 각 알고리즘간 성능 비교를 통해 알고리즘 성능 분석에 대해서도 이해할 수 있음 1. 버블 정렬두 인접한 데이터를 비요해서, 앞에 있는 데이터가 데이터보다 크면, 자리를 바꾸는 정렬 알고리즘

Python/알고리즘 2024.10.21

개요

*자료구조 : 대량의 데이터를 효율적으로 관리하게 해주는 저장 구조- 배웠던 예시 : 리스트, 튜플, 세트, 딕셔너리- 추가적인 예시 : 배열, 스택, 링크드리스트, 해쉬테이블, 힙 *알고리즘 : 어떤 문제를 풀기 위한 접근 방식                  어떤 '입력'에 어떤 '출력'을 얻을 수 있도록 만드는 방법론 왜 자료구조와 알고리즘이 중요할까?비교적 빠른 속도와 메모리 효율을 가질 수 있기 때문이다. 파이썬을 활용한 자료구조, 알고리즘 특징어떤 언어로든 자료구조와 알고리즘을 구현할 수 있으나 파이썬이 개발자 입장에서 가장 쉽게 구현할 수 있다.

파이썬과 MySQL 연동

1. MySQL Client (1) 설치 명령어# mysql 연동 라이브러리 설치 명령어!pip install mysqlclient (2) connection 객체 생성import MySQLdb# host='ip주소', user='사용자명', password='비밀번호', db='데이터베이스명'db = MySQLdb.connect(host='localhost', user='root', password='1234', db='kdt')print(db)#  2. Cursor하나의 데이터베이스 connection에 대해 독립적으로 SQL문을 실행할 수 있는 작업 환경을 제공하는 객체 (1) Tuple로 조회 결과 확인    1) fetchall() : select 모든 결과를 한 번에 2차원 Tuple로 리턴 ..

데이터베이스 사용자 관리 (DCL문)

1. 사용자 추가 및 확인# 문법 형식create user '사용자명'@'서버IP' identified by '비밀번호';# localhost에서만 접근할 계정create user '사용자명'@'localhost' identified by '비밀번호';# 모든 IP에서 접속을 허용할 계정create user '사용자명'@'%' identified by '비밀번호'; sql 확장자 스크립트에서 사용하는게 아니라 MySQL Command Line Client에서 수행# 생성된 계정 확인하기use mysql;select user, host from user; 2. 권한 설정하기사용자 권한 할당 상세 옵션 create, drop, alter: 테이블에 대한 생성, 삭제, 변경 권한 select, in..

DBMS/MySQL 2024.10.10

UNION과 VIEW

1. UNION- 합집합을 나타내는 연산자- 똑같은 row는 하나만 보여줌 (중복제거)- 서로 같은 종류의 테이블(컬럼이 같아야 함)에서만 적용이 가능함select 컬럼1, 컬럼2, ... from 테이블1 union select 컬럼1, 컬럼2, ... from 테이블2 *예시 테이블# 두 개의 테이블의 데이터를 모두 보여줌select code, name, price from product union select code, name, price from product_new; 2. UNION ALL- 중복제거 x# union all은 중복데이터를 제거하지 않음select code, name, price from product union all select code, name, price from pro..

DBMS/MySQL 2024.10.10

MySQL 문자열 다루기

1. concat : 문자열을 연결# concat: 문자열을 연결해주는 함수select concat('안녕하세요', 'MySQL') as concat;# 안녕하세요MySQLselect concat(ssn1, '-', ssn2) as address from member where userid = 'apple';# 991223-1234567 2. left, right : 해당 방향에서 몇 글자를 출력# left, right: 왼쪽 또는 오른쪽에서 길이만큼 문자열을 반환select left('ABCDEFGHIJKLMN', 5);# ABCDEselect right('ABCDEFGHIJKLMN', 5);# JKLMN 3. substring : 문자열 어디부터 어디까지 추출# substring: 문자열의 일부를 추..

DBMS/MySQL 2024.10.10

정규화된 테이블 간의 연결 (feat. join)

joinselect 필드1, ... from 테이블1 [inner, left, right] join 테이블2 on 테이블1.필드 = 테이블2.필드  1. INNER JOIN- 조인하는 테이블의 on 절의 조건이 일치하는 결과만 출력- 두 테이블간의 데이터 교집합- join, cross join 모두 같은 의미로 사용됨# 공통 PK로 연결된 컬럼만 보여주는 inner joinselect member.userid, name, gender, mbti from member join profile on member.userid = profile.userid; 2. OUTER JOIN- 두 테이블이 조인될 때 왼쪽(기본키 테이블) 또는 오른쪽(외래키 테이블) 기준으로, 기준 테이블의 데이터를 모두 출력# left ..

DBMS/MySQL 2024.10.10