목록PROGRAMMING (318)
MY MEMO
#include #include #include #include #include #include using namespace std; #define INT_MAX 2147483647 int result, goal_num; vectornum_arr; int main() { int for_count, num_count, goal_num; cin >> for_count; for (int i = 1; i > num_count >> goal_num; result = INT_MAX; num_arr = vector(num_count); queue cal_num; for (int j = 0; j > num_arr[j]; int sum = 0, index = 0, result =..
DFS로 문제를 풀었다.DFS는 역시 queue이다!! queue에 아직 visit되지 않은 node를 넣고 돌린다. 하지만 여기서는 한 가지의 조건이 더 붙는다.바로 A와 A, B와 B가 함께 살지 않는 조건이다. 따라서 문제는 아주 직관적으로 풀었다. people이라는 곳에 first에 visit를 체크하고second에 A와 B를 구별했다. 만약 people에 방문한 적이 있다면 A와 B중 무엇인지 결정이 되어있기 때문에방문한 마을의 people type과 현재 마을의 people type을 비교해서 같으면 함께 살수 없다. #include #include #include #include #include #include using namespace std; #define A 0 #define B 1 ..
목표의 수에 얼마나 가까이 도달 할 수 있는지 확인해보는 문제이다. 가장 큰 수부터 비교해보고 점점 작게 간다. 가장 작은 수를 0개를 두고 가장 큰 수까지 간 후가장 큰 수를 1씩 더하며 비교해 보는 식으로 짰다. 즉 DP이다. 하지만 DP의 목적은 역시 memorization이지 않을까 싶다. 곰곰히 어디에다가 쓸수 있을 까 생각해보다가 내가 이미 계산해서 가능하다고 나왔던 숫자에 표시를 해놓으면 어떨까 하고 생각했다. 따라서 목표값 - 남은값의 index에 표시를 해놓고 이후 또다시 이 숫자에 접근을 한다면 이 값은 계산할 수 있다고 바로 표시해 놓는다. 뿐만 아니라 이 뜻은 숫자를 이용해서 목표한 숫자를 만들수 있다는 뜻이므로 가장 가까운 수를 더 찾아볼 필요도 없이 return 해준다. +) 문..
다익스트라 알고리즘을 활용하는 문제이다. source부터 destination까지의 최단 거리를 구한 후 세일하는 티켓의 가격과 비교해서 작은 지 큰지를 비교한다. 만약 source부터 destination까지 바로 가는 구간이 있다면 바로 티켓과 비교하면 된다. 다익스트라를 처음 구현해본다면 시간이 걸릴 문제이지만 간단하게 구할 수 있는 문제이다. #include #include #include #include #include using namespace std; #define PAIR pair #define INT_MAX 2147483647 int sale_ticket, ticket_count, station_count; vector > statio..
#include #include #include #include #include using namespace std; #define PAIR pair //pair> int node_count; vector graph; vector result_path; void dikstra(int start, int end) { priority_queue cache; //거리가 최소인 것부터 정렬 vector visited = vector(node_count + 1, 0); //visited vector road = vector(node_count + 1, INT_MAX); //최소 경로 - 최대 값으로 저장해놓음 vector way; //경로 임시 저장 visited[start] = 1; way.push_back(s..
피보나치 #include #include using namespace std; vector dp; int fibonacci(int n) { if (n == 0) return 0; if (n == 1) return 1; // 이미 값을 계산한 적이 있다면 그 값을 바로 리턴 if (dp[n] != -1) return dp[n]; // 아니라면 계산해서 dp 리스트에 넣어 보존 dp[n] = fibonacci(n - 2) + fibonacci(n - 1); return dp[n]; } int main() { int N; scanf("%d", &N); dp.resize(N + 1, -1); // 초기값 -1은 fibonacci 결과로 절대 나올 수 없는 값 printf("%d\n", fibonacci(N));..
+) ABS(숫자) 절대값 계산 ABS(-4.5)=4.5 CEILING(숫자) 숫자보다 크거나 같은 최소의 정수 CEILING(4.1)=5 FLOOR(숫자) 숫자보다 작거나 같은 최소의 정수 FLOOR(4.1)=4 ROUND(숫자, m) 숫자의 반올림, m은 반올림 기준 자릿수 ROUND(5.36, 1)=5.40 LOG(숫자) 숫자의 자연로그 값을 반환 LOG(10)=2.30259 POWER(숫자, n) 숫자 n승 값을 계산 POWER(2, 3)=8 SQRT(숫자) 숫자의 제곱근 값을 계산(숫자는 양수) SQRT(9.0)=3.0 SIGN(숫자) 숫자가 음수면 -1, 0이면 0, 양수면 1 SIGN(3.45)=1 +) CHAR(n) CHAR 정수 아스키 코드를 문자로 반환 CHAR(68)=D NCHAR(n..
SQL 기능에 따른 분류1. 데이터 정의어 (DDL) : 테이블이나 관계의 구조를 생성하는 데 사용 CREATE,ALTER,DROP등2. 데이터 조작어 (DML) : 테이블에 데이터를 검색 삽입 수정 삭제하는데 사용 SELECT,INSERT,DELETE,UPDATE등3. 데이터 제어어 (DCL) : 데이터의 사용 권한을 관리하는 데 사용 GRANT,REVOKE등+) 권한 할당 : grant / 권한 제거 : revoke SELECT문의 구성 요소 SELECT [ALL┃DISTINCT] 속성이름(들)FROM 테이블이름(들)[WHERE 검색조건(들)][GROUP BY 속성이름][HAVING 검색조건(들)] [ORDER BY 속성이름 [ASC┃DESC]] ex) SELECT phone FROM Customer..
DATABASE의 내용은 모두 용인대학교 경영정보학과 박진수 교수님의 데이터베이스프로그래밍의 강의 자료(한빛 미디어)를 토대로 공부한 것입니다.
릴레이션(relation) : 행과 열로 구성된 테이블ex) 도서번호 도서이름 출판사 가격 1 축구의 역사 굿스포츠 7000 2 축구 아는 여자 나무수 13000 3 축구의 이해 대한미디어 22000 4 골프 바이블 대한미디어 35000 5 피겨 교본 굿스포츠 8000 관계(relationship) 1. 릴레이션 내에서 생성되는 관계 : 릴레이션 내 데이터들의 관계2. 릴레이션 간에 생성되는 관계 : 릴레이션 간의 관계 테이블 개념 : 스키마의 요소+) 스키마란? 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것입니다. DB에 어떤 구조로 데이터에 저장되는 가를 나타내는 데이터베이스 구조를 스키마라고 합니다.1. 속성(Attribute) : 릴레이션 스키마의 열2. 도메인(Domain) :..