-
2021.07.04
코사라주 알고리즘(Kosaraju's Algorithm)
코사라주 알고리즘(Kosaraju's Algorithm) 그래프에서 강한 연결 요소를 찾는 가장 쉽고 널리 사용되는 방법 DFS를 2번 수행하는 형태로 동작함. ① 입력 그래프 자체에 DFS를 수행함. ② 입력 그래프를 전치하여 DFS를 수행함. 코사라주 알고리즘은 일반적으로 DFS 방식 의 순회를 사용하지만, BFS 도 사용할 수 있음. DFS 방식이 전통적인 방식 복잡할 수 있는 문제를 직관적으로 단순화하는 측면에서 매우 효과적이며, 구현하기도 쉬운 편임. 입력 그래프가 인접 리스트 로 표현되어 있을 경우, O(V + E) 형태의 선형 점근적 시간 복잡도 를 갖기 떄문에 매우 효율적임. 코사라주 알고리즘에서 인접 행렬 을 사용하는 것은 권장되지 않음. 그래프 순회에서 각 정점의 이웃을 찾기 위해 상당..
-
2021.07.04
존슨 알고리즘(Johnson's Algorithm)
존슨 알고리즘(Johnson's Algorithm) 벨만-포드 알고리즘 과 다익스트라 알고리즘 의 방법을 결합하여 모든 정점 사이의 최단 경로를 구하는 알고리즘 다익스트라 알고리즘의 효율성을 활용함과 동시에 음수 가중치를 갖는 그래프에 대해서도 올바른 결과를 생성할 수 있음. 상당히 새로운 접근 방법을 사용함. 음수 가중치에 대한 다익스트라 알고리즘의 한계를 극복하기 위해 전체 에지 가중치를 음수가 아닌 형태로 변환 함. 벨만-포드 알고리즘 과 적절한 수학 논리 를 결합하여 이루어짐. 동작 방식 그래프에 새로운 더미(Dummy) 정점 을 추가함. 그리고 이 더미 정점과 나머지 모든 정점 사이에 가중치가 0인 에지를 연결함. 이후 벨만-포드 알고리즘 을 이용하여 더미 정점과 나머지 정점들 사이의 최단 경로..
-
2021.07.02
벨만-포드 알고리즘(Bellman-Ford Algorithm)
벨만-포드 알고리즘(Bellman-Ford Algorithm) 음수 가중치가 있는 그래프를 다룰 때 사용하는 알고리즘 그래프의 모든 에지에 대해 다익스트라의 그리디 선택 방법을 (V - 1)번 반복하여 점진적으로 최단 거리를 찾음. V : 정점의 개수 다익스트라 알고리즘보다 높은 점근적 시간 복잡도를 가짐. 다익스트라 알고리즘이 잘못 해석할 수 있는 그래프에 대해서도 정확한 결과를 제공함. 코드 1 음수 가중치 사이클 이 없을 경우 #include #include #include using namespace std; struct Edge { int src; int dst; int weight; }; const int UNKNOWN = INT_MAX; vector BellmanFord(vector edge..
-
2021.06.30
다익스트라 최단 경로 알고리즘(Dijkstra Shortest Path Algorithm)
다익스트라 최단 경로 알고리즘(Dijkstra Shortest Path Algorithm) 그래프에서 단일 시작(Single Start) 최단 경로 문제(Shortest Path Problem) 구글 지도 또는 자동차 내비게이션 등에서 경로를 탐색할 때 사용됨. 문제 정의 주어진 그래프 G = 의 시작 정점(Source Vertex) 과 목적 정점(Destination Vertex) 이 주어질 때, 시작 정점에서 목적 정점까지 이어지는 최소 비용 경로를 구하시오. V : 정점의 집합 E : 에지의 집합 각각의 에지는 가중치를 가지고 있음. 다익스트라 알고리즘(Dijkstra's Algorithm) 음수 가중치가 없는 그래프에서 동작하는 최단 경로 탐색 알고리즘 프림의 MST 알고리즘을 약간 변경한 형태 ..
-
2021.06.30
프림의 최소 신장 트리 알고리즘(Prim's Minimum Spanning Tree Algorithm)
프림의 최소 신장 트리 알고리즘(Prim's Minimum Spanning Tree Algorithm) MST 문제 정점 집합 V의 가중치를 갖는 에지 집합 E로 구성된 그래프 G = 가 주어질 때, 모든 정점을 연결하고 연결된 에지의 가중치 합이 최소인 트리 T를 구하는 문제 크루스칼 알고리즘(Kruskal Algorithm) 그래프의 모든 에지를 최소 힙 에 추가하고, 사이클을 만들지 않는 최소 가중치의 에지를 이용하여 MST를 구성함. 프림 알고리즘(Prim's Algorithm) BFS의 동작 방식과 유사함. 먼저 시작 정점을 이용하여 경계를 구성함. 경계는 이전에 방문했던 정점들에 의해 구성됨. 현재 경계에 인접한 정점을 반복적으로 탐색함. 이때 프림 알고리즘은 경계를 관통하는 에지 중에서 가장..
-
2021.06.30
깊이 우선 탐색(DFS, Depth-First Search)
깊이 우선 탐색(DFS, Depth-First Search) 너비 우선 탐색(BFS, Breadth-First Search) 시작 장점에서 시작하여 점차 탐색 범위를 넓혀 나가는 방식 방문하지 않은 정점을 저장하기 위해 큐(Queue) 를 사용함. 선입선출(FIFO) 자료구조 큐에 있는 정점들은 큐에 들어갔던 순서대로 제거됨. 이러한 큐의 속성을 이용하여 시작 정점에 가까이 있는 정점들을 먼저 처리할 수 있음. 시간 복잡도 : O(V + E) 깊이 우선 탐색(DFS, Depth-First Search) 시작 정점에서 시작하여 특정 경로를 따라 가능한 멀리 있는 정점을 재귀적으로 먼저 방문하는 방식 더 방문할 정점이 없어지면, 다른 경로를 찾아 다시 멀어지는 방향으로 탐색을 반복함. 이러한 그래프 탐색 방..
-
2021.06.30
너비 우선 탐색(BFS, Breadth-First Search)
너비 우선 탐색(BFS, Breadth-First Search) 시작 정점을 경계(Frontier)에 추가하는 것으로 시작함. 경계는 이전에 방문했던 정점들 에 의해 구성됨. 현재 경계에 인접한 정점을 반복적으로 탐색함. 시간 복잡도 : O(V + E) V : 정점의 개수 E : 에지의 개수 모든 정점에 대해 자식 정점을 손자 정점보다 먼저 방문한다 는 점이 중요한 특징 BFS를 구현할 경우, 보통 경계를 별도의 자료구조로 만들어서 명시적으로 사용하지는 않음. 대신 정점 ID를 큐(Queue) 에 저장하여 시작 정점과 가까운 정점을 멀리 있는 정점보다 먼저 방문할 수 있도록 구현함. 동작 과정 ① 먼저 시작점인 우리집 정점을 방문함. 빨간색 점선 : 현재 경계 인접한 정점으로 R1과 R2가 있음. ② R..
-
2021.06.28
그래프 순회 문제(Graph Traversal Problem) ; 그래프 탐색 문제(Graph Search Problem)
그래프 순회 문제(Graph Traversal Problem) ; 그래프 탐색 문제(Graph Search Problem) 그래프의 특정 정점에서 시작하여 나머지 모든 정점을 방문하는 문제 그래프 순회 문제를 수학적으로 표현할 경우 그래프 G = 가 주어질 떄, 특정 정점 s로부터 시작하여 모든 정점 v ∈ V를 방문하는 문제라고 할 수 있음. 그래프 순회 문제는 그래프에서 특정 정점을 찾기 위한 용도 로 사용될 수 있기 떄문에 그래프 탐색 문제(Graph Search Problem) 라고도 부름. 여러 그래프 탐색 알고리즘이 존재하고, 각각은 서로 다른 순서로 모든 정점을 방문함. 종류 너비 우선 탐색(BFS, Breadth-First Search) 깊이 우선 탐색(DFS, Depth-First Sea..
-
2021.06.27
웰시-포웰 알고리즘(Welsh-Powell Algorithm)
웰시-포웰 알고리즘(Welsh-Powell Algorithm) 차수(Degree) 가 높은 정점부터 차례대로 그래프 컬러링을 수행하는 방법 다음의 순서를 따름. ① 단계 모든 정점을 차수에 대한 내림차순으로 정렬하고 배열에 저장함. ② 단계 정렬된 배열에서 색상이 지정되지 않은 첫 번째 정점을 선택하고, 이 정점과 연결된 모든 정점을 조사하여 아직 사용되지 않은 색상을 해당 정점에 지정함. 이 색상을 C라고 지칭하겠음. ③ 단계 정렬된 배열에서 색상이 지정되지 않은 정점을 모두 찾고, 만약 이 정점의 이웃이 C 색상을 가지고 있지 않다며 해당 정점에 C 색상을 지정함. ④ 단계 배열에 색상이 지정되지 않은 정점이 남아 있다면 ②단계로 이동함. 남아 있는 정점이 없다면 종료함. 이때까지 정점에 지정된 색상..
-
2021.06.26
[C++] 디스조인트-셋(Disjoint-Set) ; 유니언-파인드(Union-Find), 서로소 집합, 상호 배타적 집합
디스조인트-셋(Disjoint-Set) 디스조인트-셋(Disjoint-Set) 또는 유니언-파인드(Union-Find) 자료구조 다음과 같이 불림. 서로소 집합 자료구조 상호 배타적 집합 자료구조 트리 형태로 구성된 포레스트(Forest) 각각의 원소는 숫자 ID 에 의해 표현됨. 랭크(Rank) 와 부모에 의한 포인터를 가짐. 초기화되면 랭크가 0인 N개의 독립적인 원소가 생성됨. 각각의 원소는 하나의 트리를 나타냄. 공통의 원소를 갖지 않는 원소 집합을 표현하기 위해 사용됨. 지원 연산 make-set(x) x를 ID로 갖는 원소를 디스조인트-셋 자료구조에 추가함. 새로 추가한 원소의 랭크 : 0 원소의 부모 포인터는 자기 자신을 가리키도록 설정함. 그림 설명 원 안에 적힌 숫자 : 원소 ID 괄호 ..
-
2021.06.26
크루스칼 최소 신장 트리 알고리즘(Kruskal Minimum Spanning Tree Algorithm)
크루스칼 최소 신장 트리 알고리즘(Kruskal Minimum Spanning Tree Algorithm) 최소 신장 트리(Minimum Spanning Tree) 정점(Vertex) 의 집합 V와 가중치를 갖는 에지(Edge) 의 집합 E로 구성된 그래프 G = 가 주어질 때, 모든 정점을 연결하고 연결된 에지의 가중치 합이 최소 인 트리 T 크루스칼 최소 신장 트리 알고리즘(Kruskal Minimum Spanning Tree Algorithm) 1956년에 발표됨. 알고리즘 ① 그래프 G의 모든 에지를 최소 힙 H에 추가함. ② H로부터 에지 e를 하나 꺼냄. e : 모든 에지 중에서 가장 가중치가 작은 에지 ③ e이 양 끝 정점이 이미 T에 있을 경우, e로 인해 T에서 사이클이 발생할 수 있음...
-
2021.06.25
분할 가능 배낭 문제(Fractional Knapsack Problem)
분할 가능 배낭 문제(Fractional Knapsack Problem) 0-1 배낭 문제 에서 다음 조건 추가 주어진 물건(O)을 원하는 형태로 얼마든지 분할 할 수 있음. 각 물건의 일부분만을 배낭에 담을 수 있음. 실생활의 예) 상인이 기름, 곡물, 밀가루와 같은 품목을 다룰 경우 각 품목을 원하는 양만큼 덜어내서 배낭에 담을 수 있음. 일반 배낭 문제가 NP-완전 문제 인 것과 달리 분할 가능 문제 는 간단한 솔루션이 존재함. 각 물건을 단위 무게(W)당 가격(V)을 기준으로 정렬함. 그리디 방식 에 따라 단위 무게당 가격이 높은 순서 로 물건을 선택함. 분할 가능 배낭 문제의 예 배낭 용량(T)이 8인 경우에 선택할 수 있는 최선의 물건 조합 코드 #include #include #include..
-
2021.06.25
0-1 배낭 문제(0-1 Knapsack Problem)
0-1 배낭 문제(0-1 Knapsack Problem) 조건 물건들의 집합 O = {O₁, O₂, ..., On}이 있을 경우 Wi : i번째 물건 Oi의 무게 Vi : i번째 물건의 가격(Value) 최대 무게를 T까지 견딜 수 있는 가방(배낭)이 1개 주어짐. 물건들을 가방에 담아야 함. 가방에 넣은 물건들의 가격(V) 합이 최대가 되도록 물건 선택 단, 물건들의 무게 합이 T를 넘지 않아야 함. 예 : 무역을 하는 상인이 매출의 일정 비율을 이익으로 가져갈 떄 이익을 극대화하려면 최대한 비싼 물건들을 가지고 다니면서 팔아야 하지만, 사용할 수 있는 운송 수단(또는 배낭)에는 최대 T 무게까지의 물건말 실을 수 있음. 각각의 물건에 대한 무게(W)와 가격(V)은 이미 알고 있음. 물건들을 어떻게 조..
-
2021.06.24
최단 작업 우선 스케줄링(Shortest-Job-First Scheduling)
최단 작업 우선 스케줄링(Shortest-Job-First Scheduling) 그리디 알고리즘(Greedy Algorithm)으로 해결할 수 있는 문제 중 하나 예 : 은행 창구 하나의 창구에서만 업무를 보고 있음. 대기열에 N명의 사람이 기다리고 있음. 서로 다른 용무로 방문했기 떄문에 일 처리에 필요한 시간은 사람들마다 서로 다름. 대기열에 기다리고 있던 모든 사람이 매우 합리적이어서 평균 대기 시간이 최소화될 수 있도록 대기 순서를 다시 정하는 것 에 동의하였음. 그래서 이제 대기 순서를 어떻게 바꿔야 하는지를 결정해야 함. 항목 Pi : i번째 사람 Ai : Pi의 일 처리 시간 Wi : Pi가 기다려야 하는 시간 창구에서 가까운 사람이 먼저 일을 처리할 수 있으므로 첫 번째 사람 P0의 대기 ..
-
2021.06.22
[Git] Git 연동 오류 : Make sure you configure your 'user.name' and 'user.email' in git.
Git 연동 오류 : Make sure you configure your 'user.name' and 'user.email' in git. Visual Studio Code에서 git과 GitHub를 연동하여 커밋(Commit)을 할 때 다음과 같은 오류 메시지가 뜨는 경우가 있다. 이 문제는 Git을 설치하고 가장 먼저 해야 하는 사용자 정보(사용자 이름, 사용자 이메일 주소)를 설정하지 않았기 때문 에 발생하는 오류이다. Git을 사용하는 모든 사용자는 커밋(Commit)을 할 때마다 사용자 정보를 사용하는데, 한번 커밋한 뒤에는 정보를 변경하기 어렵다. 사용자 정보를 설정하는 명령어 터미널에 다음의 명령어를 실행하여 사용자 정보를 설정한다. $ git config --global user.name ..
-
2021.06.21
[네트워크관리사 2급 실기] 단답형 문제 모음
네트워크관리사 2급 실기 단답형 문제 모음 TCP/IP, 리눅스, 신경향 문제 10번부터 15번까지의 문제 단답형 또는 보기가 주어지는 문제 문제 출처 : ICQA 예제 문제1 (A)는 시스템의 상태정보나 데이터를 그래프로 그려주는 일종의 그래픽 툴이다. 대부분의 ISP는 (A)를 이용하여 네트워크 장비의 트래픽 처리능력과 동작상태를 모니터링하고 있다. (A)는 설치하기가 쉽고 수치적인 데이터를 시각적으로 출력해주면 freeware이기 때문에 모니터링 장비가 많지 않고 값비싼 NMS 솔루션 대신에 많이 사용한다. script에 익숙하다면 SNTP로 읽을 수 있는 데이터 외에 시스템과 관련된 다양한 정보를 그래픽으로 출력할 수 있다. 정답 MRTG(Multiple Traffic Grapher) 문제 2 (..
-
2021.06.21
[네트워크관리사 2급 실기] 리눅스 문제 모음
네트워크관리사 2급 실기 리눅스 문제 모음 가급적 영문 소문자로 작성하여 정답을 제출하는 것이 좋다. ① 단답형 1. 윈도우의 ipconfig 명령어와 같이 리눅스에서 ip address 정보를 확인하는 명령어는? 답 : ifconfig 2. 리눅스에서 파일이나 폴더를 찾을 때 사용하는 명령어는? 답 : find 3. 리눅스에서 현재 설치된 하드디스크의 용량을 확인하는 명령어는? 답 : df 4. 리눅스에서 현재 위치를 확인하고 싶을 때 사용하는 명령어는? 답 : pwd 5. 리눅스에서 포트/프로토콜 정보를 확인할 수 있는 명령어는? 답 : /etc/services 또는 cat /etc/services 6. 리눅스에서 CPU 메모리 사용 정보를 확인하는 명령어는? 답 : top 7. 리눅스에서 도움말-메..
-
2021.06.20
[네트워크관리사 2급 실기] 라우터 문제 (추가)
네트워크관리사 2급 실기 라우터 문제 (추가) 기본 설정 명령어 명령어 설명 enable / en 관리자 모드로 --> Router# configure terminal / conf t 관리자 모드에서 설정모드로 --> Router(config)# hostname 이름 호스트 이름 명명 login 로그인 명령 exit 이전모드로 돌아감 end 무조건 관리자 모드로 돌아감 line console 0 / li c 0 콘솔라인 모드 전환 명령 line vty / li v 0 4 텔넷 등 가상 터미널 전환 명령 enable password 암호명 관리자모드로 엑세스할 때 암호 설정(암호화되지 않고 저장) enable secret 암호명 관리자모드로 엑세스할 때 암호 설정(암호화되어 저장) erase startup..
-
2021.06.19
[액세스 실습] 보고서 편집
1
액세스 실습 보고서 편집 개념 바로가기 바로가기 문제 다음 지시사항에 따라 [보고서 1]을 [보고서 2]와 같이 변경하시오. 첫 페이지에 한 번만 표시된 판매내역보고서 레이블을 매 페이지에 표시되도록 위치를 변경할 것 상품명을 기준으로 오름차순으로 정렬할 것 상품명별 수량의 합계가 표시되도록 그룹 바닥글을 설정한 후 텍스트 상자를 삽입할 것 본문 영역의 상품명과 상품번호의 값이 이전 레코드와 같은 경우에는 표시되지 않도록 설정할 것 금액이 그룹별 누적 합계로 표시되도록 설정할 것 각각의 레코드 아래에 선이 표시되도록 설정할 것 해설 1. 폼을 마우스 오른쪽 단추로 클릭한 후, 바로 가기 메뉴에서 [디자인 보기]를 클릭함. 2. 보고서 머리글 영역에 있는 판매내역보고서 레이블을 페이지 머리글 영역으로 드래..
-
2021.06.19
[액세스 실습] 보고서 만들기
액세스 실습 보고서 만들기 개념 바로가기 문제 쿼리를 이용하여 다음과 같이 구성된 판매내역보고서를 작성하시오. 해설 1. [만들기] -> [보고서] -> [보고서 마법사]를 클릭함. 2. 보고서 마법사 1단계 사용할 원본 데이터와 필드를 다음과 같이 차례대로 선택한 후 을 클릭함. 보고서에서 사용할 필드는 문제의 그림에서 제시된 순서대로 선택해야 함. 3. 보고서 마법사 2단계 데이터의 표시 형식을 기준-판매내역으로 선택한 후 을 클릭함. 4. 보고서 마법사 3단계 그룹 수준을 상품명으로 선택(더블 클릭)한 후 을 클릭함. 5. 보고서 마법사 4단계 정렬할 필드를 상품번호로 선택한 후 을 클릭함. 6. 보고서 마법사 5단계 모양과 용지 방향을 다음과 같이 설정한 후 을 클릭함. 7. 보고서 마법사 6단계..
-
2021.06.19
[액세스 실습] 하위 폼 만들기
2
액세스 실습 하위 폼 만들기 개념 바로가기 문제 다음과 같이 상품판매현황 폼에 상품판매 폼을 하위 폼으로 작성하시오. 해설 1. 폼을 마우스 오른쪽 버튼 단추로 클릭한 후 바로 가기 메뉴에서 [디자인 보기]를 클릭함. 2. [폼 디자인 도구] -> [디자인] -> [컨트롤의 자세히 아이콘]를 클릭하여 [하위 폼/하위 보고서]를 클릭함. 3. 상품판매현황 폼 본문의 하위 폼이 놓일 위치에 적당한 크기로 드래그함. 4. 하위 폼 마법사 1단계 사용할 데이터를 선택하는 단계로, 기존 폼 사용, 상품판매를 클릭한 후 을 클릭함. 5. 하위 폼 마법사 2단계 기본 폼과 하위 폼을 연결할 필드를 선택하는 단계로, 다음과 같이 설정한 후 을 클릭함. 6. 하위 폼 마법사 3단계 이름을 지정하는 단계로, 상품판매라고 ..
-
2021.06.19
[액세스 실습] 폼 편집
액세스 실습 폼 편집 개념 바로가기 바로가기 문제 다음 지시사항에 따라 [폼 1]을 [폼 2]와 같이 변경하시오. 폼 보기 형식을 연속 폼, 캡션을 상품판매현황으로 설정할 것 레코드 선택기와 탐색 단추가 표시되지 않도록 설정할 것 삭제가 불가능하도록 설정할 것 실행된 폼 외에 다른 작업이 불가능하도록 설정할 것 해설 1. 폼을 마우스 오른쪽 단추로 클릭한 후 바로 가기 메뉴에서 [디자인 보기]를 클릭함. 2. 폼 선택기를 더블클릭하여 폼 속성 시트 창을 실행함. 3. 폼 속성 시트 창의 형식 탭에서 캡션, 기본 보기, 레코드 선택기, 탐색 단추 속성을 다음과 같이 설정함. 4. 폼 속성 시트 창의 데이터 탭에서 삭제 가능 속성을 아니요로 설정함. 5. 폼 속성 시트 창의 기타 탭에서 모달 속성을 예로 설..
-
2021.06.19
[액세스 실습] 폼 만들기
액세스 실습 폼 만들기 개념 바로가기 문제 쿼리를 원본으로 하여 다음과 같은 판매현황 폼을 작성하시오. 해설 1. [만들기] -> [폼] -> [폼 마법사]를 클릭함. 2. 폼 마법사 1단계 대화상자에서 사용할 원본 데이터와 필드를 차례대로 선택한 후 을 클릭함. 사용 가능한 필드에서 사용할 필드를 더블클릭하면 선택한 필드로 이동함. 3. 폼 마법사 2단계 대화상자에서 폼의 모양을 열 형식으로 선택한 후, 을 클릭함. 4. 폼 마법사 3단계 대화상자에서 폼의 이름을 판매현황으로 입력한 후 을 클릭함.
-
2021.06.19
[액세스 실습] 실행 질의
액세스 실습 실행 질의 개념 바로가기 문제 1 다음과 같은 기능을 하는 쿼리를 작성하시오. ▶ 테이블에 제품코드가 KEY34, 제품명이 골덴바지, 생산원가가 9800, 판매단가가 15000인 제품을 추가하시오. 해설 SQL 입력 창에서 다음과 같이 입력한 후 결과를 확인함. INSERT INTO 추가제품(제품코드, 제품명, 생산원가, 판매단가) VALUES("KEY34", "골덴바지", "9800", "15000"); 문제 2 ▶ 테이블에 판매단가가 20000 이상인 제품의 판매단가를 500원 인상하시오. 해설 SQL 입력 창에서 다음과 같이 입력한 후 결과를 확인함. UPDATE 하절기제품 SET 판매단가 = 판매단가 + 500 WHERE 판매단가 >= 20000; 문제 3 ▶ 테이블에서 생산원가가 2..
-
2021.06.19
[액세스 실습] 쿼리 - 그룹 지정
액세스 실습 쿼리 - 그룹 지정 개념 바로가기 문제 1 쿼리를 이용하여 다음과 같은 기능을 수행하는 쿼리를 작성하시오. ▶ 쿼리에서 지점명별 판매수량의 평균과 판매금액의 합계를 계산하는 지점별판매금액 쿼리를 작성하시오. 해설 SQL 입력 창에서 다음과 같이 입력한 후 결과를 확인함. SELECT 지점명, AVG(판매수량) AS 판매수량평균, SUM(판매금액) AS 총판매금액 FROM 제품판매현황 GROUP BY 지점명; 문제 2 ▶ 쿼리에서 판매단가가 40000원 이상인 제품에 대해 지점명, 지점명별 판매수량의 평균, 판매금액의 합계를 계산하되, 지점명별 판매수량 평군이 80 이상인 것만 계산하는 판매수량80이상 쿼리를 작성하시오. 해설 SQL 입력 창에서 다음과 같이 입력한 후 결과를 확인함. SELE..
-
2021.06.19
[액세스 실습] 쿼리 - 정렬
액세스 실습 쿼리 - 정렬 개념 바로가기 문제 1 쿼리를 이용하여 다음과 같은 기능을 수행하는 쿼리를 작성하시오. ▶ 쿼리에서 판매수량이 100 이상인 사원의 판매번호, 영업사원, 판매금액을 검색하되, 판매금액을 기준으로 내림차순 정렬하는 판매수량100이상 쿼리를 작성하시오. 해설 SQL 입력 창에서 다음과 같이 입력한 후 결과를 확인함. SELECT 판매번호, 영업사원, 판매금액 FROM 제품판매현황 WHERE 판매수량 >= 100 ORDER BY 판매금액 DESC; 문제 2 ▶ 쿼리에서 제품명을 검색하되, 중복되는 레코드는 한 번만 표시하고, 제품명을 기준으로 오름차순 정렬하는 제품명 쿼리를 작성하시오. 해설 SQL 입력 창에서 다음과 같이 입력한 후 결과를 확인함. SELECT DISTINCT 제품..
-
2021.06.19
[액세스 실습] 쿼리 - 기본 구문
액세스 실습 쿼리 - 기본 구문 개념 바로가기 문제 1 테이블을 이용하여 다음과 같은 기능을 수행하는 쿼리를 작성하시오. ▶ 판매수량이 120 이상인 제품의 판매일, 영업사원, 판매수량을 검색하는 우수사원 쿼리를 작성하시오. 해설 1. [만들기] -> [쿼리] -> [쿼리 디자인]을 클릭함. 2. 테이블 표시 대화상자에서 를 클릭한 후 [쿼리 도구] -> [디자인] -> [결과] -> [SQL]을 클릭함. 3. SQL 입력 창에 다음과 같이 입력한 후 결과를 확인하기 위해 [쿼리 도구] -> [디자인] -> [결과] -> [실행]을 클릭함. SELECT 판매일, 영업사원, 판매수량 FROM 판매 WHERE 판매수량 >= 120; 4. 닫기 단추를 클릭한 후, 저장 여부를 묻는 대화상자에서 를 클릭함. 다..
-
2021.06.19
[액세스 실습] 관계 설정하기
액세스 실습 관계 설정하기 개념 바로가기 문제 과 테이블에 다음과 같은 관계를 설정하되, 항상 참조 무결성 유지를 설정하시오. 해설 1. [데이터베이스 도구] -> [표시/숨기기] -> [관계]를 클릭함. 2. 테이블 표시 대화상자에서 사용할 테이블(, )을 차례로 더블클릭하여 추가한 후 를 클릭함. 3. 테이블의 고객코드 필드를 테이블의 고객코드 필드로 끌어다 놓음. 4. 항상 참조 무결성 유지를 선택한 후, 를 클릭함. 5. 관계 창의 닫기 단추를 클릭함. 관계 형식의 저장 여부를 묻는 대화상자에서 를 클릭함.
-
2021.06.19
[액세스 실습] 입력 마스크 및 유효성 검사
액세스 실습 입력 마스크 및 유효성 검사 개념 바로가기1 바로가기2 문제 1 테이블의 고객ID 필드는 AA-0000의 형식으로, 전화번호 필드는 123-4567-8900의 형식으로 입력되도록 다음과 같이 입력 마스크를 설정하시오. 고객ID 필드 앞의 두 자리는 영문 대문자로 입력받되, 소문자가 입력되어도 대문자로 변환되도록 설정 뒤의 네 자리는 1~9999 사이의 숫자리 입력받되, 공백 없이 반드시 입력되도록 설정 전화번호 필드 입력 데이터에 공백이 포함될 수 있도록 설정 해설 1. 테이블을 마우스 오른쪽 단추로 클릭한 후, 바로 가기 메뉴에서 [디자인 보기]를 클릭함. 2. 고객ID 필드를 클릭하여 고객ID 필드의 속성이 나타나게 한 후, 입력 마스크 속성에 >LL-0000을 입력함. (이 경우, 영문..
-
2021.06.18
[BOJ21964][C++] 선린인터넷고등학교 교가
문제 드높은 남산 위에 우뚝 선 송백은 흰 눈빛에 푸르고 옛부터 흘러가는 한가람 장 할 손 우리 학원 이룩한 굳세고 다함 없는 거룩한 뜻이 백이십년 빛난 역사 자랑이로세 비바람 몰아쳐도 나가자 공들여 쌓은 탑은 빛난다 울려라 삼천리에 힘차게 세워라 반석 위에 선린의터를 선린인터넷고등학교 학생들은 이미 잘 알고 있겠지만, 학교 교가를 부를 때는 마지막 5글자인 "선린의터를" 부분만 크고 우렁차게 불러야 한다. 정휘는 여기에 영감을 받아, 문자열이 주어지면 마지막 5글자만 우렁차게 읽으려고 한다. 공백이 없는 문자열이 주어지면 마지막 5글자만 출력하는 프로그램을 작성해보자. 입력 첫 번째 줄에 문자열의 길이 N이 주어진다. 두 번째 줄에는 N글자로 이루어진 문자열 S가 주어진다. 출력 S의 마지막 5글자를 ..