전체 글

전체 글

    우선 순위 큐 - Priority Queue

    속성1. 모든 항목에는 우선 순위가 있다2. 우선 순위가 높은 요소는 우선 순위가 낮은 요소보다 먼저 queue에서 제외된다.3. 두 요소의 우선 순위가 같으면 queue의 순서에 따라 제공된다. 4 → 8 → 2 순으로 데이터가 들어간다고 했을 때 큐와 우선순위 큐의 처리 순서는 다음과 같다.(여기서 높은 값이 높은 우선순위를 갖는다고 가정.)input : 4 → 8 → 2큐 : 4 → 8 → 2우선순위 큐 : 8 → 4 → 2기본 동작enqueue()- queue에 새 요소를 삽입.dequeue() - queue에서 최대 우선 순위 요소를 삭제하고 그 값을 반환.peek() - queue에서 최대 우선순위 요소를 반환.구현  힙 방식이 최악에 경우라도 O(logN)을 보장하기 때문에 일반적으로 힙을 ..

    [LeetCode] 136. Single Number

    로직은 단순하다map에 파라미터로 넘어오는 nums의 개수를 파악하고이후 새로운 벡터를 초기화한 후 오름차순 정렬using IntPair = pair;class Solution{public: int singleNumber(vector& nums) { map m; for (auto& item : nums) m[item]++; vector v(m.begin(), m.end()); sort(v.begin(), v.end(), [&](const IntPair& left, const IntPair& right) -> bool { return left.second  xor 방식int singleNumber(vector& nums) { int ans=0; for(auto& it..

    [LeetCode] 344 - Reverse String

    class Solution{public: void reverseString(vector& s) { int left = 0, right = s.size() - 1; while (left

    [실3] 1002 - 터렛

    #include #include #include #include #include using namespace std;int main(){ int t; cin >> t; while (t--) { int x1, y1, r1, x2, y2, r2; cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2; double d = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2)); double sub = r1 > r2 ? r1 - r2 : r2 - r1; int sum = r1 + r2; if (d == 0 && r1 == r2) cout sub && d

    [C++] 원이 겹치는지에 대한 개인 코드

    struct Circle{ float x, y, z; float mp = 0; // middle-point float l = 0;public: Circle() = default; Circle(float x, float y, float z = 0) :x(x), y(y), z(z) { } bool operator==(Circle& ref) { return this->x == ref.x && this->y == ref.y && this->z == ref.z; }};int main(){ // 주어진 원 vector v({ {-3, 0}, {0, 5}, {2, 3} }); int size = v.size(); vector> check(size, vector(size)); int ans = 0; for (int i..

    [네트워크] 호스트 (host), 클라이언트 (Client), 서버 (Server)

    클라이언트클라이언트는 서버에서 사용할 수 있는 서비스에 엑세스하는 컴퓨터 하드웨어 장치 또는 소프트웨어다. 서버는 종종 실제 별도의 컴퓨터에 위치한다.서버서버는 다른 컴퓨터의 요구 사항을 충족하기 위해 서비스를 실행하는 물리적인 전용 컴퓨터다. 실행 중인 서비스에 따라 파일 서버, 데이터베이스 서버, 홈 미디어 서버, 인쇄 서버 또는 웹 서버일 수 있다.호스트호스트는 네트워크를 통해 데이터 또는 서비스를 제공하는 다른 컴퓨터에 연결된 컴퓨터다. 이론적으로 네트워크에 연결된 모든 컴퓨터는 네트워크의 다른 피어에 호스트 역할을 한다. 본질적으로 호스트는 네트워크에 있는 둘 이상의 컴퓨터의 논리적 관계를 반영한다. 컴퓨터가 다른 컴퓨터의 호스트일 수 있다. 마찬가지로 라우터는 다른 라우터의 호스트일 수 있다...

    [네트워크] 접근 통제 정책 (MAC, DAC, RBAC)

    - 접근 통제 정책어떤 상황에서 행위를 허용하거나 거부할 것인지에 대한 내용을 나타낸다. 접근 통제 정책은 크게 세가지가 있다. - MAC (Mandatory Access Control) : 강제적 접근 통제주체, 객체 등급기반 접근권한 부여자원의 보안 레벨과 사용자의 보안 취급 인가를 비교하여 접근 제어를 한다.어떤 주체가 어떤 객체에 접근하려 할 때 양자의 보안 레벨(보안등급)을 비교하여 높은 보안을 요하는 정보가 낮은 레벨의 주체에게 노출되지 않도록 접근을 제한하는 방법 이다.  - DAC (Discretionary Access Control) : 임의적 접근 통제접근 주체 신분기반 접근권한 부여접근 주체가 속해 있는 그룹의 신원에 근거하여 객체에 대한 접근을 제한하는 방법 이다.자원의 소유자가 접..

    [데이터베이스] 스키마란? 개념 스키마, 내부 스키마, 외부 스키마

    스키마란스키마란 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것이다. 즉, 개체의 특성을 나타내는 속성 (Attribute)과 속성들의 집합으로 이루어진 개체 (Entity), 개체 사이에 존재하는 관계 (Relation)에 대한 정의와 이들이 유지해야 할 제약 조건들을 기술한 것이다.쉽게 정리하자면, DB 내에 어떤 구조로 데이터가 저장되는가를 나타내는 데이터베이스 구조이다.특징1) 스키마는 데이터 사전 (Data Dictionary)에 저장된다. 2) 현실 세계의 특정한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어지게 된다. 3) 시간에 따라 불변인 특성을 갖는다. (시불변성) 4) 데이터의 구조적 특성을 의미한다. 5) 인스턴스에 의해 규정된다.1) 개념 스키마 = 전체적인..

    [데이터베이스] 용어 정리 - 릴레이션, 어트리뷰트, 튜플, 도메인, 차수, 카디널리티, 스키마

    릴레이션관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위이다. 결국, 릴레이션은 DB 테이블이다. 흔히 개발을 할 때 DB 설계를 하게 되는데 ERD (Entity Relationship Diagram) 아래와 같이 구성한다. 그래서 이 네모칸 하나하나가 결국 릴레이션이다.특징한 릴레이션에는 똑같은 튜플 (Tuple)이 포함될 수 없으므로 릴레이션에 포함된 튜플들은 모두 상이하다.한 릴레이션에 포함된 튜플 사이에는 순서가 없다.튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다.속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있다.릴레이션을 구성하는 튜플을 유일하..

    [UML] 다이어그램 종류 및 특징 (구조별, 행위별)

    구조 다이어그램Class Diagram(클래스 다이어그램): 클래스의 속성, 함수, 변수타입들로 구성된 다이어그램.  Object Diagram(객체 다이어그램): 클래스의 인스턴스, 값이 매겨진 행동을 가지고 있는 독립된 객체정보를 표현하는 다이어그램. Package Diagram(패키지 다이어그램): UML의 다양한 모델요소를 그룹화한 다이어그램. Component Diagram(컴포넌트 다이어그램): 컴포넌트끼리의 구조 관계를 표현한 다이어그램. Deployment Diagram(배치 다이어그램): 소프트웨어, 하드웨어 등을 포함한 시스템의 물리적인 구조를 나타내는 다이어그램. 행위 다이어그램Use Case Diagram(쓰임새 다이어그램): 사용자 관점에서 바라본 시스템을 표현한 다이어그램. Ac..