목록전체 글 (591)
어흥
문제 링크: www.acmicpc.net/problem/12781 12781번: PIZZA ALVOLOC 입력의 첫 줄에는 도윤이와 친구들이 선택한 점의 좌표 x, y(-10,000 ≤ x, y ≤ 10,000)가 순서대로 4개 주어진다. x, y값은 항상 정수이다. www.acmicpc.net 1. 주의할 점 - 선분의 외적을 이용한 CCW에 대해 알고 있어야 한다(1->2->3의 순서로 갈 경우, S가 음수면 시계, 양수면 반시계방향) - S가 0인 경우를 처리한다 A: (x1, y1), B: (x2, y2), C: (x3, y3) -> A: (x1, y1, 1), B: (x2, y2, 1), C: (x3, y3, 1) -> 벡터 AB: (x2-x1, y2-y1, 0), 벡터 AC: (x3-x1, y..
문제링크: www.hackerrank.com/challenges/kruskalmstrsub/problem Kruskal (MST): Really Special Subtree | HackerRank Learn to use the Kruskal's algorithm ! www.hackerrank.com 1. 주의할 점 - 간선의 가중치가 같다면 각 Node의 합이 작은것을 우선시한다 - Make_union() 함수에서 부모를 잘 갱신하도록 한다 2. 구현 - 입력받는 모든 간선에 대한 정보를 우선순위큐 PQ에 넣는다 - PQ에서 꺼낸 간선에서 양 끝점이 만약 같은 집합이 아니라면 Make_union()함수를 통해 이어주며 Result에는 가중치만큼 더하며 Cnt++를 통해 MST의 경우 Node의 개수-1만..
문제 링크: www.hackerrank.com/challenges/bfsshortreach/problem Breadth First Search: Shortest Reach | HackerRank Implement a Breadth First Search (BFS). www.hackerrank.com 1. 주의할 점 - 각 쿼리마다 사용한 전역변수를 잘 초기화한다 2. 구현 - 시작점에서 다른 Node까지의 거리를 저장하는 Dist[] 배열과 각 Node에 연결된 간선들에 대한 정보를 저장하는 V[] 벡터를 초기화한다 - 넘겨 받은 간선들에 대한 정보를 V[]배열에 저장한다 - 시작점을 Queue에 넣은 이후, BFS를 통해 다음 Node의 Dist가 현재까지의 Dist + 1보다 크다면 갱신하고 Queu..
1. Index란? : 수많은 데이터 중에서 원하는 자료를 빠르고 효율적으로 검색할 수 있도록 하는 자료구조 2. 특징 - 1개 혹은 여러개의 Column을 이용하여 생성될 수 있다 - 고속의 검색 동작 + 레코드 접근과 관련 효율적인 순서 매김 동작 제공 - [키 값, 주소] 형태로 저장되어 보통 테이블보다 적은 용량을 차지한다 - 대부분 B/B+ 트리의 구조를 가진다 2-1. 인덱스의 관리 DBMS는 index를 항상 최신의 정렬된 상태로 유지해야 원하는 값을 빠르게 탐색할 수 있다. 따라서 INSERT, UPDATE, DELETE가 수행된다면 각각 다음과 같은 연산을 추가적으로 해줘야하며, 그에 따른 오버헤드가 발생한다 INSERT: 새로운 데이터에 대한 인덱스를 추가한다 DELETE: 삭제하는 데..
문제링크: www.hackerrank.com/challenges/encryption/problem Encryption | HackerRank Encrypt a string by arranging the characters of a string into a matrix and printing the resulting matrix column wise. www.hackerrank.com 1. 주의할 점 - 미리 9*9배열 Arr[][]을 만들어놓는다(최대 길이가 81이므로) - 배열의 가로와 세로를 잘 구하도록 한다 2. 구현 - 입력받은 문자의 공백을 모두 제거한 문자열을 Str에 저장한다 - Math.h의 내장함수인 Ceil과 Floor 함수를 통해 Row, Col을 구한다(단, Row*Col < Str..
문제링크: www.hackerrank.com/challenges/queens-attack-2/problem Queen's Attack II | HackerRank Find the number of squares the queen can attack. www.hackerrank.com 1. 주의할 점 - 8방에서 가장 가까운 장애물을 미리 구해놓는다(1칸씩 옆으로 가면서 확인하지말것) - 대각선을 잘 세도록 한다 2. 구현 - 변수 U,RU,R,RD,D,LD,L,LU를 둬서 12시부터 시계방향으로 8방향에서 가장 가까운 장애물의 Y좌표를 저장하도록 한다 - 대각선의 경우, Y좌표를 변수에 저장했기 때문에 퀸과 벽사이의 거리와 변수의 값중에서 작은 값을 저장하도록 한다. 왜냐하면 천장이나 바닥에 닿기전에 옆..
문제 링크: www.hackerrank.com/challenges/torque-and-development/problem Roads and Libraries | HackerRank Help the ruler of HackerLand determine the cheapest way to give his citizens access to libraries. www.hackerrank.com 1. 주의할 점 - 범위를 잘 확인한다 - 각 쿼리마다 초기화를 잘 수행한다 - 입력받은 길 중에서, 도서관을 1개 세우는 경우: (Cnt-1)*C_road + C_lib만큼의 비용이 발생하고 각각 도서관을 세우는 경우: Cnt*C_lib만큼의 비용이 발생한다. 즉 C_road>=C_lib일때, 각각 도서관을 세우면 된다..
1. 정의 : Datebase Management System의 약자로, 데이터베이스를 관리하는 시스템 2. 기능 1) 데이터 정의(DDL: Data Definition Language) - 응용 프로그램이 요구하는 데이터 구조를 지원할 수 있도록 데이터 베이스의 논리적 구조와 DBMS에서 정의한 데이터 모델에 맞게 정의한다. - 데이터 베이스의 논리적 구조와 물리적 구조 사이의 변환이 가능하도록 두 구조사이의 매핑을 지원한다. - 명령어: CREATE, ALTER, DROP, RENAME, TRUNCATE (TRUNCATE: Commit 자체가 포함되어 있어서 테이블에서 모든 행(Data)과 공간을 삭제 -> Rollback해도 복구 불가. 무결성을 유지하는 메커니즘을 생략하여 빠른 제거를 실현 -> ..