본문 바로가기

전체 글

[C++] 백준 2309번 : 일곱 난쟁이 https://www.acmicpc.net/problem/2309 #include #include using namespace std; int main() {cin.tie(NULL);ios::sync_with_stdio(false);int ary[9];int n,sum = 0;for (int i = 0; i > ary[i];sum += ary[i];} int sum2 = sum;for (int i = 0; i < 8; i++){sum2 = sum;sum2 -= ary[i];for (int j = i + 1; j < 9; j++){if ((sum2 - ary[j]) == 100){ary[i] = -1;ary[j] = -1;goto outside;}}}outside: sort(ar.. 더보기
Chapter2 - 관계형 모델 소개 데이터 모델은 데이터, 데이터의 관계, 데이터의 의미, 일관성 제약조건 들을 기술하기 위한 개념적 도구의 모임이다. 관계형 모델은 데이터와 이런 데이터의 관계를 표현하기 위해 테이블의 집합을 사용한다. 테이블은 개념적으로 간단명료하기 때문에 널리 사용되었다. 오늘날 대부분의 데이터베이스 시스템이 관계형 모델에 기반을 두고 있다. 관계형 데이터베이스는 논리적 단계와 뷰 단계에서 데이터를 설명하고, 데이터 저장의 세부적인 하우 단계를 추상화 한다. 개체 관계 모델은 데이터베이스 디자인에서 널리 사용되는 상위 단계의 모델이다. 사용다들이 관계형 데이터베이스에서 데이터를 이용할 수 있도록 하기 위해서는 우선 몇 가지 쟁점을 짚고 넘어가야 한다. 가장 중요한 쟁점은 데이터 무결성(integrity)과 데이터 보호.. 더보기
Chapter1 - 요약 요약 데이터베이스 관리 시스템(DBMS)은 서로 관련이 있는 데이터의 모임과 그 데이터에 접근하기 위한 프로그램의 집합으로 구성된다. 데이터는 특정 조직에 관한 정보를 기술한다. DBMS의 주요 목적은 데이터베이스에 정보를 저장하고 또 이를 검색하기 위한 편리하고도 효율적인 환경을 제공하는 데 있다. 데이터베이스는 오늘날 세계 어디서나 널리 사용되고 있으며 대부분의 사람들이 직접적으로든 간접적으로든 매일 여러 번씩 이를 이용하고 있다. 데이터베이스 시스템은 대규모의 정보를 관리하도록 설계되었다. 데이터의 관리는 정보의 저장을 위한 구조를 정의하는 작업과 정보의 조작을 위한 기법을 제공하는 작업 모두를 포함한다. 또한, 데이터베이스 시스템은 시스템의 고장이나 불법적인 액세스로부터 저장된 정보를 안전하게 지.. 더보기
Chapter1 - 데이터베이스 사용자와 관리자 데이터베이스 사용자와 관리자 데이터베이스 시스템의 주된 목적은 데이터베이스에 저장된 정보를 검색하고 새로운 정보를 저장하는 것이라 할 수 있다. 데이터베이스와 관련된 사람들은 다음과 같이 사용자와 관리자로써 분류된다. 데이터베이스 사용자와 사용자 인터페이스 데이터베이스 시스템을 사용하는 사용자들은 시스템과 상호 작용하는 양상에 따라서 다음과 같은 네 가지 유형으로 구분된다. 이들 서로 다른 사용자 그룹을 위해 서루 다른 인터페이스가 제공되어야 한다. 일반 사용자 : 일반적으로, 미리 작성되어 저장된 응용 프로그램들 중 하나를 불러서 이를 이용하여 시스템을 사용하는 시스템에 익숙하지 않은 사용자 층이다. 예를 들어, A 학과에 새로운 교수를 추가하려고 하는 대학교 직원이 new_hire 라는 프로그램을 호.. 더보기
Chapter1 - 전문적 데이터베이스 전문적 데이터베이스 데이터베이스 시스템을 위한 몇몇의 응용 프로그램 분야들은 관계형 데이터 모델로 제한되어 있다. 그 결과 연구자들은 객체 기반의 데이터 모델과 반구조형 데이터 모델을 포함하는 응용 프로그램 도메인을 다루기 위해 몇몇의 데이터 모델들을 개발하였다. 객체 기반 데이터 모델 객체 지향 프로그래밍은 점점 중요한 소프트웨어 개발의 방법론이 되어가고 있다. 이는 캡슐화, 메소드(함수), 객체 아이텐티티 개념을 더해 E-R 모델을 확장한 것처럼 보이는 객체 지향 데이터 모델(object-oriented data model)의 개발을 불러 왔다. 객체에 인터페이스를 제공하기 위한 방법들과 함께 상속, 객체 아이텐티티, 캡슐화(정보 은닉)는 객체 지향 프로그래밍의 중요한 개념들이다. 객체 지향 데이터 .. 더보기
Chapter1 -데이터 마이닝과 정보 검색 데이터 마이닝과 정보 검색 데이터 마이닝이라는 용어는 유용한 패턴을 찾기 위해 대규모 데이터베이스를 반자동적으로 분석하는 작업을 의미한다. 인공지능에서 말하는 지식탐사(기계 학습 이라고도 한다) 혹은 통계적 분석처럼, 데이터 마이닝은 데이터로부터 규칙과 패션을 찾으려 한다. 그러나 데이터 마이닝은 주로 데이터에 저장되어진 대규모의 데이터를 다룬다는 점에서 기계학습이나 통계적 분석과는 차이가 있다. 즉, 데이터 마이닝은 "데이터베이스 상에서의 지식 탐사"를 다룬다. 데이터베이스로부터 탐사되어진 지식들의 일부는 규칙의 집합으로 표현될 수 있다. 다음이 규칙의 예라 할 수 있다. "작은 스포츠카의 경우 연소득이 50,000불 이상 되는 젊은 여성이 가장 사기를 원한다." 물론 이와 같은 규칙은 일반적인 사실은.. 더보기
Chapter1 - 데이터베이스 구조 데이터베이스 구조 데이터베이스 시스템의 다양한 구성 요소와 그 구성 요소들 사이의 접속 관계가 하나의 그림으로 나타난다. 데이터베이스 시스템의 구조는 데이터베이스 시스템이 동작하는 컴퓨터 시스템에 의해서 크게 영향을 받는다. 데이터베이스 시스템은 중앙 집중 방식 또는 하나의 서버와 다중 클라이언트 장치들이 함게 작업을 수행하는 클라이언트-서버 방식이 있을 수 있다. 데이터베이스 시스템은 병렬 컴퓨터 구조를 이용하도록 설계될 수도 있다. 분산 데이터베이스는 여러 개의 지리적으로 분리된 컴퓨터 시스템에서 동작한다. 대부분 데이터베이스 시스템 사용자들은 시스템에서 작업하기보다는 대개 네트워크를 통해 데이터베이스에 접속한다. 그러므로 원격으로 데이터베이스에 접속하여 작업하는 클라이언트(client)와, 데이터베.. 더보기
Chapter1 - 트랜잭션 관리 트랜잭션 관리 대개, 데이터베이스에 대한 몇 개의 연산이 하나의 논리적 작업 단위를 이룬다. 예금 이체가 하나의 예인데, 이떄 한 학과의 계좌(예를 들면, A)는 출금 계좌이고, 다른 학과의 계좌(B라고 하자)는 입금 계좌이다. 분명히, 입금과 출금이 모두 일어나든지, 모두 일어나지 않든지 하는 것이 필수적이다. 즉, 예금 이체는 전체가 완전히 수행되거나, 일체 수행되지 않아야 한다. 이러한 all or none 요구 조건을 원자성(consisteny)이라고 한다. 또한, 예금 이체의 실행은 데이터베이스의 일고나서을 보존해야 한다. 즉, A의 잔고와 B의 잔고를 합한 값이 보존되어야 한다. 이러한 영속성의 요구 조건을 지속성(durability)이라고 한다. 트랜잭션(transaction)은 데이터베이스.. 더보기