AI 22

파이썬 02 파이썬 시작

파이썬의 시작 1. 파이썬의 기원 1) 파이썬의 개발 배경- 1991년 히도 판 로쉼(Guido van Rossum)이 개발- 네덜란드 암스테르담 대학에서 컴퓨터 전공- 크리스마스 휴가 기간 프로그래밍 프로젝트에서 시작- 코미디 'Monty Python's Flying Circus'를 따서 명명 - 파일관리, 프로그램 실행, 반복 작업 자동화 등의 기능을 수행하는 언어 체계 용도로 개발- 프로그래밍을 더욱 인간 친화적이고 접근 가능한 분야로 혁신적으로 변화 2) 파이썬의 기본 철학- 읽기 쉽고 간결한 문법 - 프로그래밍 패러다임, 문법에 따라 다양한 표현 가능- 다중 프로그래밍 패러다임 채용 - 알고리즘을 프로그래밍 언어로 표현하는 접근 방식- 명령형 프로그래밍, 절차적 프로그래밍, 객체지향 프로그래밍..

AI/파이썬 2026.04.12

파이썬 01 컴퓨터와 프로그램

컴퓨터의 구성 1. 컴퓨터가 다루려고 하는 대상-> 데이터, 정보 1) 데이터(data): 관찰이나 측정을 통해 얻은 수치, 문자 형태의 표현할 수 있는 또는 양적 값 2) 정보(information): 획득한 데이터를 처리해 실제 문제 해결이 도움이 되도록 변형된 데이터 또는 결과물 현상 > 관찰/측정 > 데이터 > 처리/가공 > 정보 3) 컴퓨터: 사전에 정의된 절차에 따라 입력 데이터를 자동으로 처리해 정보를 생산하는 기계 2. 컴퓨터의 구성요소: 하드웨어+소프트웨어 1) 하드웨어: 컴퓨터를 구성하고 있는 물리적 부품(처리장치) 2) 소프트웨어: 다양한 장치들을 동작시켜 특정 작업을 해결하는 프로그램 3) 하드웨어의 물리적 구성CPU, ODD, RAM, HDD, Video Card 4) 하드웨어..

AI/파이썬 2026.04.12

통계학개론 01 데이터와 통계학(1)

통계학이란 1. 통계학: 데이터에 관한 학문 - 불확실한 현상을 이해하기 위해 데이터를 수집하고, 데이터 패턴을 요약하고, 분석하여-> 불확실한 현상에 대한 결론을 찾는 학문 - 데이터란 세상을 이해하는 창- 어떤 현상을 이해하기 위해 그 현상을 관찰해 데이터를 수집 - 전통적인 데이터 수집 방법: 관찰, 설문조사, 실험 등 - 현대의 데이터 수집 방법: 컴퓨터와 정보통신 기술의 발달로 매일 방대한 양의 데이터가 생산됨-> 데이터 폭발=> 데이터에서 쓸모있는 정보를 얻기 위한 별도의 과정이 필요 2. 통계학의 역할 1) 데이터 수집: 알고 싶은 현상을 왜곡되지 않게, 잘 반영하는 데이터를 수집하기 위해 통계적 원리를 사용 2) 데이터 요약: 데이터가 가진 특징과 패턴을 정확하고 효과적으로 드러내기 위..

AI/통계학개론 2026.04.02

R과 RStudio 설치 및 시작

R이란 - 통계 분석과 그래프 작성에 쓰이는 무료 소프트웨어- Windows, MacOS, Linux 등 다양한 컴퓨터 환경에 쉽게 설치, 사용 가능- R development core team에 의해 유지, 개선 - 누구나 새로운 함수를 개발해 '패키지' 형태로 공유 가능-> 상업용 소프트웨어에 비해 다양한 분석 가능 R 다운로드 CRAN(https://cran.r-project.org) https://cran.r-project.orgg : 컴퓨터 사양에 따라 필요한 것으로 다운로드 : 처음 설치하는 사람은 base로 설치-> 다운로드 받은 파일을 실행해 설치해주면 된다 RStudio 편집기 RStudio: R을 편리하게 이용할 수 있게 해 주는 편집기 https://www.rstudi..

AI/통계학개론 2026.04.02

알고리즘과 자료구조 02 Brute-force 전략 (1)

Brute-force 전략 1. brute-force(억지) 전략 1) brute-force(억지) 전략의 개요- 답을 찾기 위해 모든 가능한 경우를 전부 확인 또는 수행하는 단순한 방법- 주로 반복 기법 활용- 컴퓨터의 빠른 성능 활용 2) 예시1. 1-100까지 합계 구하기- sum = 1+2+3+...+100- 반복문으로 구현 3) 예시2. 9ⁿ을 구하기- result = 9*9*9*...*9 2. brute-force(억지) 전략 예시 1) 오름차순으로 정렬된 숫자들의 리스트에서 최대값을 찾는 방법- 첫번째 값을 max로 초기화- 리스트의 두번째부터 마지막 원소를 현재의 max와 비교해 max가 작으면 max를 리스트의 원소값으로 변경 2) 서울에서 출발해 대전, 부산, 광주를 모두 방문하고 ..

알고리즘과 자료구조 01 알고리즘 개요

알고리즘 개요 1. 알고리즘(algorithm) : 어떤 문제의 해답을 구하기 위한 단계적인 절차를 순서대로 명확하게 나타낸 것 ex. 두 변수 a, b의 값을 맞바꾸는 알고리즘1. 변수 c를 준비한다2. 변수 a의 값을 변수 a에 저장한다3. 변수 b의 값을 변수 a에 저장한다4. 변수 c의 값을 변수 b에 저장한다 2. 알고리즘 조건(특성) 1) 명확성- 알고리즘을 구성하는 각 명령의 의미는 모호하지 않고 명확해야 함 2) 유한성- 알고리즘은 일정한 시간 내에 종료되어야 함- 무한루프를 포함하면 안 됨 3) 유효성- 컴퓨터에서 실행 가능해야 함- 현대의 기술로 해결이 가능해야 함 4) 효율성- 효율적인 알고리즘일수록 가치가 높음- 빠르고 메모리 사용량이 적어야 함 ex. 1-N까지 더하는 알고리즘..

JAVA 프로그래밍 기초 04 연산자, 수식, 문장

연산자 1. 연산자(operator) - 특정 연산을 수행하기 위한 기호- 연산을 수행한 결과를 반환- 연산의 대상이 되는 데이터: 피연산자(operand)- 피연산자 개수에 따라 단항, 이항, 삼항 연산자 존재- 이항 연산자는 두 항의 자료형을 일치시키고 연산을 수행 - 수식을 계산할 때 우선순위가 높은 연산자부터 계산- 우선순위가 같은 경우 대입연산자를 제외하고 모든 이항 연산자는 왼쪽부터 계산- 대입 연산자는 오른쪽부터 계산 2. 연산자의 종류 구분연산자산술+ - * / % 단항+ 단항- ++ --비교> >= 논리&& || ! 삼항?: & | ^비트& | ^ ~ > >>>대입= += -= *= /= %= &= ^= |= >>= >>=형변환(type)기타[] () . new 3. 연산자 우선순위..

JAVA 프로그래밍 기초 03 Java 기본 문법(2)

문자열과 형변환 1. String 클래스 1) 문자열을 표현하고 처리하기 위한 참조 자료형- 문자열은 String 클래스의 객체 2) 문자열 리터럴을 표현할 때 이중따옴표를 사용함ex1. String s1 = "Java";ex2. String s2 = new String("Java");. 3) String형의 변수는 기본형 변수처럼 사용할 수 있음 4) null 이라는 특별한 리터럴이 있음- 참조형 변수의 값(not available)이 될 수 있음ex. if (str != null) { ... } 2. 문자열의 +연산 1) 두 문자열을 연결하는 것(concatenation)- (문자열+기본형) or (문자열+다른 참조형)도 가능- 기본형과 참조형 값은 문자열로 형변환 가능 2) print()나 pr..

JAVA 프로그래밍 기초 02 Java 기본 문법(1)

Java 프로그램의 구조 1. 클래스 1) 클래스는 Java 프로그램의 기본 구성단위- 객체지향 프로그램은 클래스의 집합- 하나의 클래스는 하나의 .class 파일로 변환됨- Java 소스의 컴파일 과정에서 나오는 결과물 2) public class의 이름은 파일 이름과 일치해야 함ex. public class SimpleSum { ... }- 클래스는 특정 패키지에 저장됨 2. 패키지 1) 패키지- 클래스와 인터페이스의 관리를 위해 필요함- 패키지에 클래스, 인터페이스, 서브 패키지가 저장됨- 클래스-패키지 관계는 파일-폴더 관계와 같다 - 패키지는 계층 구조이다 ex. java.util.ArrayList - package 구문을 사용해 클래스가 위치할 패키지 지정- 클래스 파일의 위치를 확인해볼 ..

JAVA 프로그래밍 기초 01 Java 개요

Java 언어 1. Java 언어의 역사 - Sun Microsystems의 제임스 고슬링 박사가 창시 - 1990년 그린 프로젝트와 Oak 언어 개발 -> Java로 명칭 변경- 1995년 Java와 HotJava(Java 언어로 개발된 웹 브라우저) 발표(웹의 확산)- 1996년 1월 JDK1.0(자바 플랫폼: 자바프로그램 개발 환경) 발표- 2009년 Oracle이 Sun 인수- 2021년 Java SE 16 (JDK16) 2. Java 언어의 특징 - C/C++ 언어와 유사하나 단순함(전처리 등이 필요없음)- 플랫폼에 독립적인 언어: 플랫폼이 언어에 포함- 완전한 객체지향 언어- 웹/네트워크 프로그래밍 언어- 엄격한 자료형의 검사 -> 실행 오류를 줄인다- 예외 처리 기능 제공- 멀티 스레딩 ..