분류 전체보기
-
부속 질의 (subquery) SELECT sum(saleprice)FROM orderTableWHERE custid=(SELECT custid FROM customerTable WHERE name = '박지성')부속질의란 하나의 SQL 문 안에 다른 SQL 문이 중첩된 질의를 말함. 다른 테이블에서 가져온 데이터로 현재 테이블에 있는 정보를 찾거나 가공할 때 사용함. 보통 데이터가 대량일 때 데이터를 모두 합쳐서 연산하는 조인보다 데이터만 찾아서 공급해주는 부속질의가 성능이 더 좋음. Join과 Subquery의 성능 차이는 case by case다. 데이터베이스 최적화, 인덱스 사용 여부, 쿼리 작성 방법 등 주어진 상황에 따라 다르므로 특정 상황에서는 JOIN이 더 효율적일 수 있고, 다른 상황..
[DB] SubQuery부속 질의 (subquery) SELECT sum(saleprice)FROM orderTableWHERE custid=(SELECT custid FROM customerTable WHERE name = '박지성')부속질의란 하나의 SQL 문 안에 다른 SQL 문이 중첩된 질의를 말함. 다른 테이블에서 가져온 데이터로 현재 테이블에 있는 정보를 찾거나 가공할 때 사용함. 보통 데이터가 대량일 때 데이터를 모두 합쳐서 연산하는 조인보다 데이터만 찾아서 공급해주는 부속질의가 성능이 더 좋음. Join과 Subquery의 성능 차이는 case by case다. 데이터베이스 최적화, 인덱스 사용 여부, 쿼리 작성 방법 등 주어진 상황에 따라 다르므로 특정 상황에서는 JOIN이 더 효율적일 수 있고, 다른 상황..
2024.06.23 -
1. JOIN 둘 이상의 테이블에서 데이터가 필요할 때 관련 있는 속성을 기준으로 복수의 테이블을 ‘관계’ 지어주는 연산. 그래서 관계형 데이터베이스의 꽃이라 부른다. 일반적으로 각 테이블의 PK 및 FK로 구성된 조인 조건을 포함하는 WHERE 절을 작성해야 한다. 가. JOIN의 종류 조인은 크게 일반적인 조인(혹은 내부 조인)과 외부 조인으로 나눌 수 있다. INNER JOINOUTER JOINLEFT OUTER JOINRIGHT OUTER JOIN 2. INNER JOIN 두 테이블 모두에서 일치하는 값을 가진 행만 반환. select e.employee_id, e.first_name, e.salary, d.department_namefrom employees e inner join depart..
[DB] JOIN1. JOIN 둘 이상의 테이블에서 데이터가 필요할 때 관련 있는 속성을 기준으로 복수의 테이블을 ‘관계’ 지어주는 연산. 그래서 관계형 데이터베이스의 꽃이라 부른다. 일반적으로 각 테이블의 PK 및 FK로 구성된 조인 조건을 포함하는 WHERE 절을 작성해야 한다. 가. JOIN의 종류 조인은 크게 일반적인 조인(혹은 내부 조인)과 외부 조인으로 나눌 수 있다. INNER JOINOUTER JOINLEFT OUTER JOINRIGHT OUTER JOIN 2. INNER JOIN 두 테이블 모두에서 일치하는 값을 가진 행만 반환. select e.employee_id, e.first_name, e.salary, d.department_namefrom employees e inner join depart..
2024.06.22 -
1. View 가. View란? 데이터베이스에 존재하는 ‘가상의 테이블’ 실제 행과 열을 가지고 있지만 데이터를 저장하고 있지 않고 SQL만 저장한다. MySQL에서는 단지 다른 테이블이나 View의 데이터를 보여주는 역할만 수행한다. 복잡한 Join이나 Subquery를 View를 사용해서 단순하게 만들 수 있다. 나. 장점SELECT CustomerName, OrderIDFROM CustomersINNER JOIN Orders ON Customers.CustomerID = Orders.CustomerIDWHERE Customers.Country = 'USA';예를 들어, 다음과 같은 복잡한 쿼리를 가지고 있다고 가정해 본다. (실제로는 더 복잡하고 반복되겠죠?) CREATE VIEW USA_Order..
[DB] VIEW1. View 가. View란? 데이터베이스에 존재하는 ‘가상의 테이블’ 실제 행과 열을 가지고 있지만 데이터를 저장하고 있지 않고 SQL만 저장한다. MySQL에서는 단지 다른 테이블이나 View의 데이터를 보여주는 역할만 수행한다. 복잡한 Join이나 Subquery를 View를 사용해서 단순하게 만들 수 있다. 나. 장점SELECT CustomerName, OrderIDFROM CustomersINNER JOIN Orders ON Customers.CustomerID = Orders.CustomerIDWHERE Customers.Country = 'USA';예를 들어, 다음과 같은 복잡한 쿼리를 가지고 있다고 가정해 본다. (실제로는 더 복잡하고 반복되겠죠?) CREATE VIEW USA_Order..
2024.06.22 -
제 11장 Part-2위 유튜브 강의를 정리, 보충한 내용입니다. 본격적으로 들어가기 앞서 I/O와 Memory에 대하여 알아보자. Device란?: 네트워크 어댑터, LCD 디스플레이, 오디오, 터미널, 키보드, 하드디스크, 플로피디스크, 프린터 등과 같은 주변 장치를 뜻함.: 디바이스의 구동을 위해서 디바이스 드라이버가 필요함.Device Driver란?: 실제 device를 추상화하여 사용자 프로그램이 정형화된 인터페이스를 통해 디바이스를 제어할 수 있도록 하는 프로그램.: 디바이스 제어에 필요한 정형화된 인터페이스를 구현하기 위하여 요구되는 함수와 자료구조의 집합체.: 응용 프로그램이 하드웨어를 제어할 수 있도록 인터페이스를 제공한다.: 하드웨어 독립적인 프로그램을 작성할 수 있도록 함.: 사용..
[컴퓨터구조론] 입출력 구조제 11장 Part-2위 유튜브 강의를 정리, 보충한 내용입니다. 본격적으로 들어가기 앞서 I/O와 Memory에 대하여 알아보자. Device란?: 네트워크 어댑터, LCD 디스플레이, 오디오, 터미널, 키보드, 하드디스크, 플로피디스크, 프린터 등과 같은 주변 장치를 뜻함.: 디바이스의 구동을 위해서 디바이스 드라이버가 필요함.Device Driver란?: 실제 device를 추상화하여 사용자 프로그램이 정형화된 인터페이스를 통해 디바이스를 제어할 수 있도록 하는 프로그램.: 디바이스 제어에 필요한 정형화된 인터페이스를 구현하기 위하여 요구되는 함수와 자료구조의 집합체.: 응용 프로그램이 하드웨어를 제어할 수 있도록 인터페이스를 제공한다.: 하드웨어 독립적인 프로그램을 작성할 수 있도록 함.: 사용..
2024.06.21 -
제 9장 Part-3위 유튜브 강의를 보고서 정리한 내용입니다. 백터 처리 (Vector Processing)백터 : 컴퓨터 과학에서는 동일한 데이터 유형의 요소들의 순서 있는 집합을 나타낸다.백터 처리 : 컴퓨터에서 동일한 연산을 일련의 데이터에 대해 동시에 적용하는 방법을 말합니다. 왜 씀? : 대량의 데이터를 동시에 처리하여 계산 속도를 향상하는 것.: 일련의 데이터에 대한 연산을 한번에 수행할 수 있게 합니다.: 과학, 공학, 그래픽, 기상 예보, 의료 이미징 등과 같은 분야에서 많은 양의 데이터를 빠르게 처리해야 하는 상황에 특히 유용.: 장기 기상 예보, 석유 탐사, 지진 데이터 분야, 의학 검진, 분석, 기계 역학, 비행 시뮬레이션, 인공지능, 전문가 시스템, 유전자 분석, 2/3차원 이미지..
[컴퓨터구조론] 백터 처리제 9장 Part-3위 유튜브 강의를 보고서 정리한 내용입니다. 백터 처리 (Vector Processing)백터 : 컴퓨터 과학에서는 동일한 데이터 유형의 요소들의 순서 있는 집합을 나타낸다.백터 처리 : 컴퓨터에서 동일한 연산을 일련의 데이터에 대해 동시에 적용하는 방법을 말합니다. 왜 씀? : 대량의 데이터를 동시에 처리하여 계산 속도를 향상하는 것.: 일련의 데이터에 대한 연산을 한번에 수행할 수 있게 합니다.: 과학, 공학, 그래픽, 기상 예보, 의료 이미징 등과 같은 분야에서 많은 양의 데이터를 빠르게 처리해야 하는 상황에 특히 유용.: 장기 기상 예보, 석유 탐사, 지진 데이터 분야, 의학 검진, 분석, 기계 역학, 비행 시뮬레이션, 인공지능, 전문가 시스템, 유전자 분석, 2/3차원 이미지..
2024.06.21 -
12865. 평범한 배낭주어진 무게 이하로 물건을 담아서 만들 수 있는 최대 가치를 구하라.특정한 조건을 만족하는 부분집합(과 관련된 계산값)을 구하라.완전탐색 시 시간초과.DP로 문제를 풀어야 한다.12865번: 평범한 배낭2239 - 스도쿠구현백트래킹2239번: 스도쿠1263. 사람 네트워크 2최단 거리플로이드-워샬SW Expert Academy3055. 탈출시뮬레이션BFS3055번: 탈출4014. 활주로 건설시뮬레이션배열SW Expert Academy1249. 보급로최단거리다익스트라SW Expert Academy
풀었던 문제(0326 ~ 0404)12865. 평범한 배낭주어진 무게 이하로 물건을 담아서 만들 수 있는 최대 가치를 구하라.특정한 조건을 만족하는 부분집합(과 관련된 계산값)을 구하라.완전탐색 시 시간초과.DP로 문제를 풀어야 한다.12865번: 평범한 배낭2239 - 스도쿠구현백트래킹2239번: 스도쿠1263. 사람 네트워크 2최단 거리플로이드-워샬SW Expert Academy3055. 탈출시뮬레이션BFS3055번: 탈출4014. 활주로 건설시뮬레이션배열SW Expert Academy1249. 보급로최단거리다익스트라SW Expert Academy
2024.06.21 -
1. 문자열 패턴 매칭 문자열 패턴 매칭은 주어진 문자열에서 특정 패턴이 어디에 위치하는지 찾는 알고리즘. 예를 들어, "나는 전선을 간다"라는 문자열에서 "전선"라는 패턴을 찾는 경우가 문자열 패턴 매칭의 한 예다. 검색 엔진, 텍스트 편집기, 데이터베이스 등에서 이용된다. 여러 가지 알고리즘들이 있으며, 각각의 알고리즘은 다른 상황에서 장점을 가짐. 문자열 패턴 매칭 알고리즘설명장점단점Brute force주어진 문자열을 처음부터 하나씩 검사하며 패턴과 일치하는지 확인구현이 간단하다문자열이 길 경우 비효율적이다라빈 카프해시 함수를 이용하여 패턴의 해시값과 문자열의 해시값을 비교평균적으로 빠른 검색 속도해시 충돌로 인해 오동작할 가능성이 있다KMP패턴 내에서의 반복을 찾아내어 검사 횟수를 줄임중복 검사..
[Java] 문자열 패턴 매칭1. 문자열 패턴 매칭 문자열 패턴 매칭은 주어진 문자열에서 특정 패턴이 어디에 위치하는지 찾는 알고리즘. 예를 들어, "나는 전선을 간다"라는 문자열에서 "전선"라는 패턴을 찾는 경우가 문자열 패턴 매칭의 한 예다. 검색 엔진, 텍스트 편집기, 데이터베이스 등에서 이용된다. 여러 가지 알고리즘들이 있으며, 각각의 알고리즘은 다른 상황에서 장점을 가짐. 문자열 패턴 매칭 알고리즘설명장점단점Brute force주어진 문자열을 처음부터 하나씩 검사하며 패턴과 일치하는지 확인구현이 간단하다문자열이 길 경우 비효율적이다라빈 카프해시 함수를 이용하여 패턴의 해시값과 문자열의 해시값을 비교평균적으로 빠른 검색 속도해시 충돌로 인해 오동작할 가능성이 있다KMP패턴 내에서의 반복을 찾아내어 검사 횟수를 줄임중복 검사..
2024.06.13 -
1. 플로이드 워샬이란? 가능한 모든 노드 쌍에 대해 최단 거리를 구하는 알고리즘.시간복잡도 : O(N^3) Dijkstra와 달리 모든 노드 쌍에 대한 최단 거리를 구하고,음의 가중치를 가지는 그래프에서도 쓸 수 있다! 2. 구현 DP로 접근하기 위해 부분 문제를 정의해야 한다. s에서 e까지 가는 데 걸리는 최단거리는 (s->e) 또는 (s->m→e)이다.(s->m→e) = s에서 m까지 가는 데 걸리는 최단거리 + m에서 e까지 가는 데 걸리는 최단거리 int INF = 1000000; // 도달할 수 없음을 의미 (구체적인 값은 문제 따라서 다름)int[][] graph; // 그래프를 나타내는 2차원 배열int n; // 노드의 개수public void floydWarshall() { //..
[Java] 플로이드 워샬1. 플로이드 워샬이란? 가능한 모든 노드 쌍에 대해 최단 거리를 구하는 알고리즘.시간복잡도 : O(N^3) Dijkstra와 달리 모든 노드 쌍에 대한 최단 거리를 구하고,음의 가중치를 가지는 그래프에서도 쓸 수 있다! 2. 구현 DP로 접근하기 위해 부분 문제를 정의해야 한다. s에서 e까지 가는 데 걸리는 최단거리는 (s->e) 또는 (s->m→e)이다.(s->m→e) = s에서 m까지 가는 데 걸리는 최단거리 + m에서 e까지 가는 데 걸리는 최단거리 int INF = 1000000; // 도달할 수 없음을 의미 (구체적인 값은 문제 따라서 다름)int[][] graph; // 그래프를 나타내는 2차원 배열int n; // 노드의 개수public void floydWarshall() { //..
2024.06.13