더듬이의 헬로월드

Hello, World!

728x90

분류 전체보기 59

[데이터베이스/DB] 4.관계형 데이터베이스의 키(key)의 종류

키가 존재하는 이유 - 투플을 구별하기 위해 -투플을 유일하게 구별하기 위해 모든 속성을 이용하는 것보다 일부 속성만 이용하는 것이 효율성을 높일 수 있다. 릴레이션에 포함된 투플들을 유일하게 구별해주는 역할은 속성 또는 속성들의 집합인 키가 담당한다. 키의 종류 후보키(Candidate Key) 후보키(candidate key)는 유일성과 최소성을 만족하는 속성 또는 속성들의 집합이다. 후보키는 투플을 유일하게 구별하기 위해 꼭 필요한 최소한의 속성들로만 이루어지므로 수퍼키 중에서 최소성을 만족하는 것이 후보키가 된다 EX) 만약 (고객이름) 속성은 후보키가 될 수 있을까? 세상에는 이름이 같은 동명이인이 있기 때문에 불가능하다. 위 릴레이션에서는 (고객아이디) 속성을 통해 각 투플을 구별할 수 있다!..

[데이터베이스/DB] 3.관계형 데이터베이스 용어

관계형 데이터베이스란? 관계형 데이터베이스는 테이블을 사용하고, 키와 값을 사용하는, 현재 가장 많이 쓰이는 데이터베이스의 한 종류입니다.데이터의 종속성을 관계(Relationship)로 표현하는 것이 관계형 데이터베이스의 특징이다. 릴레이션 행과 열로 구성된 테이블이다. 정보를 구분하여 저장하는 기본 단위이다. 속성,애트리뷰트,열 -속성은 개체가 가지고 있는 고유의 특성이다 -고객 릴레이션에는 고객과 관련하여 여섯 가지 중요한 데이터를 의미하는 고객아이디, 고객이름, 나이, 등급, 직업, 적립금이라는 속성이 존재한다. 각 속성은 서로 다른 이름을 이용해 구별한다. 도메인 -속성 하나가 가질 수 있는 모든 값의 집합을 해당 속성의 도메인(domain)이라 한다. 관계 데이터 모델에서는 속성 값으로 더는 ..

[데이터베이스/DB] 1.데이터와 데이터베이스

1.데이터와 정보 -데이터는 현실 세계에서 단순히 관찰하거나 측정하여 수집한 사실이나 값,자료라고도 한다. -정보는 데이터를 의사 결정에 유용하게 활용할 수 있도록 처리하여 체계적으로 조직한 결과물이다. 2.정보 처리 -데이터에서 정보를 추출하는 과정 또는 방법을 정보처리라 한다. -데이터를 상황에 맞게 분석하거나 해석하여 데이터 간의 의미 관계를 파악하는 것 3.정보 시스템 -조직 운영에 필요한 데이터를 수집하여 저장해두었다가 의사 결정이 필요할 때 처리하여 유용한 정보를 만들어주는 수단 4.데이터베이스의 정의 -특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합하여 저장한 운영 데이터의 집합 공유데이터 : 특정 조직의 여러 사용자가 함께 소유하고 이용하는 공유 데이터이다. EX)대학 DB 에는..

[백준/BOJ/C++] 15651-N과M (3)

난이도 Silver3 문제 링크 https://www.acmicpc.net/problem/15651 문제 해결 과정 N과M(1)에서 중복을 허용하는 경우를 출력한다. 간단하다. N과M(1)에서 if문을 통해 방문했는지 안했는지에 대한 코드를 삭제해주면 중복을 허용하는 코드로 바뀐다. 출력해본다면, 이전과는 비교도 안되게 경우의 수가 많아진 것을 볼 수 있다. 백트래킹이 필요한 이유를 체감할 수 있다. 주의할 점 1.현재 경우를 모두 탐색했다면, 다음 경우의 수를 위해 꼭 방문처리를 false로 바꿔주어야 한다. 2.이상한거 삭제하지 말고, if문만 삭제하자. 이상한거 삭제하다가 큰일난다. 코드 #include using namespace std; int nm_array[9]; bool nm_isvisit..

[백준/BOJ/C++] 15650-N과M (2)

난이도 Silver3 문제 링크 https://www.acmicpc.net/problem/15650 문제 해결 과정 N과M(1)에서 이전 숫자보다 현재 숫자가 큰 경우에만 출력한다. 저장된 배열을 확인해서 탐색 조건으로 배열에 저장된 이전 수보다 현재 탐색하는 수가 더 큰 경우를 추가한다. 주의할 점 1.현재 경우를 모두 탐색했다면, 다음 경우의 수를 위해 꼭 방문처리를 false로 바꿔주어야 한다. 2.최초의 경우에는 nm_array[0] 를 검사하므로 1보다 작은 수를 넣어주어야 한다.(최초로 0으로 초기화되니 ㄱㅊ) 코드 #include using namespace std; int nm_array[9]; bool nm_isvisit[9]; void N_and_M(int number,int digit..

[백준/BOJ/C++] 15649-N과M (1)

난이도 Silver3 문제 링크 https://www.acmicpc.net/problem/15649 문제 해결 과정 DFS, 백트래킹 기법을 이용해서 풀었다. 사전순 출력은, 반복문을 1부터 시작하면 자연스럽게 해결된다. N_and_M 함수의 인자로 ~까지의 수, 자릿수, 현재 탐색하는 순번 을 인자로 두어 ~까지의 수까지 반복문을 진행하며, 다음 탐색 수가 방문했던 수면 PASS, 현재 탐색하는 순번이 자릿수가 될 때까지 결과를 저장했다가 출력한다. 주의할 점 1.현재 경우를 모두 탐색했다면, 다음 경우의 수를 위해 꼭 방문처리를 false로 바꿔주어야 한다. 2.뒤에 나오는 N과M 시리즈의 베이스가 되는 코드이기 때문에 깔끔하고, 잘 알아볼수 있게 짜야 한다. 코드 #include using name..

[백준/자료구조 1/C++] 11724-연결 요소의 개수

난이도 SIlver2 문제 링크 https://www.acmicpc.net/problem/11724 문제 해결 과정 반복문을 통해 1번 노드부터 노드의 개수만큼 시작 노드 로 두고, DFS탐색을 진행하였다. 시작노드가 이미 방문된 노드라면, PASS하고 아니라면 결과값에 +1을 더해준다. 반복문이 끝났을 때, 결과값을 출력한다. 주의할 점 1.간선으로 연결되지 않은, 혼자 있는 노드의 경우도 체크해 주어야 한다. 2.무방향 그래프라는 점은 잘 인지하고, 그래프를 구현해야 한다 코드 #include #include using namespace std; //구현이 비교적 간단한 DFS를 이용하였다. void DFSDFS(vector *Pvec,bool* visit,short StartNode) { //현재 ..

[백준/BOJ/C++] 2606-바이러스

난이도 Silver3 문제 링크 https://www.acmicpc.net/problem/2606 문제 해결 과정 DFS, BFS와 같은 그래프 탐색 알고리즘을 이용하여 1번 컴퓨터부터 시작해서 탐색하여, 그 탐색한 횟수를 검사해, 결과를 출력하였다. BFS는 구현이 어렵고, 복잡하기 때문에, DFS를 이용해 알고리즘을 구성하였다. 주의할 점 1.출력해야 할 값은 1번 컴퓨터를 통해서 감염된 컴퓨터의 수이므로, 1번 컴퓨터는 결과값에서 제외한다. 2.재귀함수 이용 시, 방문 처리를 잘 해주어 무한 루프에 빠지지 않도록 주의한다. 코드 #include #include using namespace std; //1번 컴퓨터를 통해 감염되는 컴퓨터의 숫자 int result=0; //구현이 비교적 간단한 DFS..

[백준/BOJ/C++]1260 - DFS와 BFS

난이도 Silver2 문제 링크 https://www.acmicpc.net/problem/1260 문제 해결 과정 BFS, DFS의 기본 동작을 이해하고, 함수를 제작 후, 출력 형식에 맞추어 출력하면 된다. STL의 사용이 필수! 주의할 점 1.정점이 여러 개라면, 가장 작은 노드부터 탐색해야 하므로, 정렬을 해주어야 한다. 2.동적 할당을 이용한다면, 포인터 이용과 메모리 해제에 주의하자. 코드 #include #include #include #include using namespace std; void ShowDFS(vector *Pgraph,bool *visit,short StartNode) { //재귀함수를 이용해 구현 //현재 노드를 방문처리 후, 데이터 출력 visit[StartNode] =..

728x90