분류 전체보기 58

[C++] 알튜비튜 6주차 - 그리디 알고리즘

그리디욕심쟁이 방법 탐욕적 방법, 탐욕 알고리즘 등으로 불린다.우리가 원하는 답을 여러개의 조각으로 쪼개고, 각 단계마다 답의 한 부분을 만들어간다.모든 단계의 선택지를 고려해보지는 않는다.각 단계마다 지금 당장 좋은 근시안적 방법을 선택한다.계산속도가 빠르다.-> 많은 경우 최적해를 찾지 못한다. 특정 조건 하에서만 적용가능사용조건시간적, 공간적 제약으로 최적해를 구하지 못해, 근사해를 구해야 하는 문제 (대개 출제 x)탐욕법을 사용해도 항상 최적해를 구할 수 있는 문제탐욕선택속성 : 탐욕적으로 선택하더라도 문제의 최적해가 보장될 때(손해 x)최적 부분 구조 : 부분 문제의 최적해가 전체 문제의 최적해로 확장될 수 있을 때알고리즘의 정당성을 증명하는 과정 연습

언어/C++ 2025.03.27

ch05. 상속

5.1 상속의 개념 5.2 클래스 상속과 객체 자바의 상속선언extends 키워드 사용하여 상속선언상속 부모클래스 : 슈퍼클래스, 상속 자식클래스 : 서브클래스서브클래스는 슈퍼클래스의 private 멤버 외 모든 멤버에 접근할 수 있다.자바 상속의 특징클래스 다중상속 x (C++과 달리). 그러나 인터페이스는 다중상속 가능자바의 모든 클래스는 자바에서 제공하는 Object 클래스를 자동으로 상속받도록 컴파일된다. 5.3 protected 접근 지정자바의 접근 지정자 : private, public, protected, 디폴트 >>모든 멤버는 이 중 하나로 반드시 지정되어야 함.디폴트 접근 지정: 접근 지정자가 선언되어 있지 않을 때protected 멤버슈퍼클래스의 protected 멤버에 접근 가능한 경..

언어/JAVA 2025.03.26

[데이터베이스] ch05. 관계 데이터 모델

01. 관계 데이터 모델의 개념기본개념개념적 구조 -> 논리적 구조 표현하는 논리적 데이터 모델하나의 개체에 대한 데이터를 하나의 릴레이션에 저장  키의 종류슈퍼키(super key) : 유일성을 만족하는 속성 or 속성들의 집합ex) : 고객 릴레이션의 슈퍼키 : 고객아이디, (고객아이디, 고객이름), (고객이름, 주소) 등후보키(candidate key) : 유일성과 최소성을 만족하는 속성 or 속성들의 집합ex) 고객 릴레이션의 후보키 : 고객아이디, (고객이름, 주소) 등기본키(primary key) : 후보키 중 기본적으로 사용하기 위해 선택한 키ex) 고객 릴레이션의 기본키 : 고객아이디기본키 선정에서 제외NULL값을 가질 수 있는 속성이 포함된 후보키값이 자주 변경될 수 있는 후보키후보키 하..

[Data Science] EPOCH_ch04. 포르토 세구로 안전 운전자 예측 경진대회 (p.258 ~ p.267)

4.7 Baseline 모델 실질적인 머신러닝 파이프라인 구축하기(Baseline 모델 구축) 순서 : 데이터 전처리 -> 피처 엔지니어링 -> 학습 모델(LightGBM) 정의 -> 모델 학습 및 교차 검증 평가 -> 테스트 데이터 예측 및 캐글 업로드  머신 러닝 파이프라인은 일련의 상호 연결된 데이터 처리 및 모델링 단계로서, 머신 러닝 모델을 구축, 학습, 평가 및 배포하는 프로세스를 자동화, 표준화 및 간소화하도록 설계되었습니다. 머신 러닝 시스템 개발 및 생산화의 중요한 구성 요소인 머신 러닝 파이프라인은 데이터 과학자와 데이터 엔지니어가 엔드투엔드 머신 러닝 프로세스의 복잡성을 관리하고, 다양한 애플리케이션을 위한 정확하고 확장 가능한 솔루션을 개발할 수 있도록 지원합니다. 머신 러닝 기술은..

CS/Data Science 2025.03.23

[Data Science] EPOCH_Kaggle 3주차

2.7 Baseline 모델 : 일반적인 머신러닝 파이프라인의 모든 과정을 포함하는 가장 기초적 모델경진대회 상위 참가자들이 baseline 모델 공개 but 직접 개인 baseline 모델 구축해보면 배움 향상! Tabular 데이터를 다루는 캐글 경진대회에서의 머신러닝 파이프라인의 일반적 순서데이터 전처리 제품변수 결측값 0으로 대체(보유여부 정보가 없으면 보유하고 있지 않다고 가정)훈련데이터와 테스트데이터 통합(날짜변수(fetcha_dato)로 쉽게 구분가능.  동일한 24개의 고객변수 공유, 테스트 데이터에 없는 24개의 제품변수는 0으로 채움범주형, 수치형 데이터 전처리. 범주형 데이터는 .factorize()를 통해 Label Encoding 수행.데이터 타입이 object로 표현되는 수치형 ..

CS/Data Science 2025.03.19

[Data Science] EPOCH_Kaggle 2주차

[4개의 정답이 모두 마지막 4개일 때]#Prediction (예측결과)0 0 0 1 1 1 1#Precicion (예측의 정확도)0 0 0 1/4 2/5 3/6 4/7#Average Precision (예측 정확도의 평균)(1/1 + 2/2 + 3/3 + 4/4) / 4 = 1.002.1 경진대회 소개산탄데르 은행은 고객 맞춤형 제품 추천 제공소수 고객에게만 다양한 추천 제공, 나머지 고객에게는 제품추천기회가 적어 불균등한 고객경험으로 이어진다. 고객의 과거 이력과 유사한 고객군들의 데이터를 기반으로 다음달에 해당 고객이 무슨 제품을 사용할지 예측하는 문제 준비더 효과적인 추천시스템을 갖추게 된다면 산탄데르는 고객이 인생의 어느 단계에 있든 모든 고객의 개인적 필요에 알맞는 제품을 추천하여 그들을 만족..

CS/Data Science 2025.03.19

[데이터베이스] ch03. 데이터베이스 시스템

01. 데이터베이스 시스템의 정의데이터베이스 시스템(DBS; DataBase System) : 데이터베이스에 데이터를 저장하고 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템02. 데이터베이스의 구조스키마와 인스턴스스키마(schema) : 데이터베이스에 저장되는 데이터구조와 제약조건을 정의한 것인스턴스(instance) : 스키마에 따라 데이터베이스에 실제로 저장된 값 [ 3단계 데이터베이스 구조 ]미국 표준화기관 ANSI/SPARC에서 제안데이터베이스를 쉽게 이해하고 이용할 수 있도록 하나의 데이터베이스를 관점에 따라 세 단계로 나누었다.외부 단계(external level): 개별 사용자 관점하나의 데이터베이스에 외부 스키마가 여러 개 존재할 수 있음외부스키마(external schema)= 서..

[데이터베이스] ch02. 데이터베이스 관리 시스템

01. 데이터베이스 관리 시스템의 등장배경파일 시스템(file system)데이터를 파일로 관리하기 위해 파일을 생성-삭제-수정-검색하는 기능을 제공하는 소프트웨어응용 프로그램별로 필요한 데이터를 별도의 파일로 관리파일 시스템의 문제점같은 내용 데이터가 여러 파일에 중복저장저장공간의 낭비 + 데이터 일관성과 데이터 무결성을 유지하기 어렵다. ex) 연락처를 고객데이터파일에서만 수정하고 실수로 주문데이터 파일에서 수정하지 않는 경우해결? -> 데이터 통합 응용 프로그램이 데이터 파일에 종속적(데이터 종속성)사용하는 파일의 구조를 변경하면 응용 프로그램도 함께 변경해야 한다.데이터 파일에 대한 동시공유, 보안, 회복기능 부족응용프로그램 개발 쉽지 않음 데이터베이스 관리 시스템(DBMS : DataBase M..

[데이터베이스] ch01. 데이터베이스 기본 개념

01. 데이터베이스의 필요성데이터: 현실세계에서 단순히 관찰하거나 측정하여 수집한 사실이나 값정보: 의사결정에 유용하게 활용할 수 있도록 데이터를 처리한 결과물정보처리: 데이터에서 정보를 추출하는 과정 또는 방법정보 시스템 : 조직 운영에 필요한 데이터를 수집하여 저장해두었다가 필요할 때 유용한 정보를 만즐어주는 수단데이터베이스 : 정보시스템 안에서 데이터를 저장하고 있다가 필요할 때 제공하는 역할 담당데이터베이스(DB; DataBase)특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합하여 저장한 운영 데이터의 집합 02. 데이터베이스의 정의와 특징공유 데이터특정 조직의 여러 사용자가 함께 소유하고 이용할 수 있는 공용 데이터통합 데이터최소의 중복과 통제 가능한 중복만 허용하는 데이터저장 데이터..

[C++] 알튜비튜 4주차 - 브루트포스

브루트포스 무차별 대입, 완전 탐색해답을 찾기 위해 가능한 모든 경우의 수를 찾는 기법시간복잡도는 입력크기에 비례간단하지만 매우 느림 BUT 떠올리기 가장 쉬운 기법 -> 문제를 풀 때 가장 먼저 고려해야 한다.입력범위와 시간복잡도를 잘 고려 분해합n의 분해합 = n과 n을 이루는 각 자리수의 합n의 생성자 = 분해합이 n인 어떤 자연수 m 비트마스킹비트 필드 각각을 하나의 원소처럼 사용하는 기법 C++ 에서 int는 32비트의 공간을 사용 -> int 한 개로 32개의 원소 저장 가능산술 연산보다 빠른 연산 수행가능1개의 int만으로 32개의 원소를 저장하는 효과효율적 메모리사용DP, 백트래킹 등 방문 여부를 저장해야 하는 알고리즘에 사용  비트연산자AND(&) : int ans = a & b;1100..

언어/C++ 2025.03.12