[Algorithm] Introduction

2024. 7. 1. 15:29·Computer Science/Algorithm

Introduction of Algorithm

  • 자료 구조 : 다양한 방식의 데이터 저장 방식을 의미하고, 그 안에 저장된 데이터에 접근하는 데 필요한 비용을 결정

  • 알고리즘: 주어진 문제가 있을 때, 데이터에 대한 정확한 정의와 데이터 변환 순서에 대한 일련의 명령

  • 알고리즘의 좋고 나쁨은 알고리즘 동작의 효율성에 의해 결정된다. 또는 알고리즘 수행에 필요한 명령의 개수도 판단의 근거가 될 수 있다.

알고리즘 문제 분류(계산 복잡도 기준)

  • P 문제: 다항 시간 알고리즘을 이용하여 솔루션을 구할 수 있는 문제

  • NP 문제: 특정 솔루션을 다항 시간으로 검증할 수는 있지만 알려진 다항 시간 솔루션은 없는 경우

  • EXPTIME 문제(지수 시간 문제): 입력 크기에 대한 지수 함수 형태의 시간 복잡도 솔루션을 갖는다

  • PSPACE(다항식 공간) 문제 : 다항식 크기의 공간이 필요한 문제

P = NP 문제

  • P 문제 집합이 NP 문제 집합과 완전히 같은지를 알아내는 것을 P = NP 문제라고 한다

    • 수십 년의 노력에도 아직 해결되지 않은 문제

Ref) 코딩 테스트를 위한 자료구조와 알고리즘 with C++

'Computer Science > Algorithm' 카테고리의 다른 글

[Algorithm/Divide&Conquer] 05. 선택(selection) 문제, 선형 시간 선택  (0) 2024.07.01
[Algorithm/Divide&Conquer] 04. Quick Sort(퀵 정렬)  (0) 2024.07.01
[Algorithm/Divide&Conquer] 03. Merge Sort(병합 정렬)  (0) 2024.07.01
[Algorithm/Divide&Conquer] 02. 이진 검색(binary search)  (0) 2024.07.01
[Algorithm/Divide&Conquer] 01. 분할 정복(Divide & Conquer) 알고리즘  (0) 2024.07.01
'Computer Science/Algorithm' 카테고리의 다른 글
  • [Algorithm/Divide&Conquer] 04. Quick Sort(퀵 정렬)
  • [Algorithm/Divide&Conquer] 03. Merge Sort(병합 정렬)
  • [Algorithm/Divide&Conquer] 02. 이진 검색(binary search)
  • [Algorithm/Divide&Conquer] 01. 분할 정복(Divide & Conquer) 알고리즘
lumana
lumana
배움을 나누는 공간 https://github.com/bebeis
  • lumana
    Brute force Study
    lumana
  • 전체
    오늘
    어제
    • 분류 전체보기 (457)
      • Software Development (27)
        • Performance (0)
        • TroubleShooting (1)
        • Refactoring (0)
        • Test (8)
        • Code Style, Convetion (0)
        • DDD (0)
        • Software Engineering (18)
      • Java (71)
        • Basic (5)
        • Core (21)
        • Collection (7)
        • 멀티스레드&동시성 (13)
        • IO, Network (8)
        • Reflection, Annotation (3)
        • Modern Java(8~) (12)
        • JVM (2)
      • Spring (53)
        • Framework (12)
        • MVC (23)
        • Transaction (3)
        • AOP (11)
        • Boot (0)
        • AI (0)
      • DB Access (1)
        • Jdbc (1)
        • JdbcTemplate (0)
        • JPA (14)
        • Spring Data JPA (0)
        • QueryDSL (0)
      • Computer Science (130)
        • Data Structure (27)
        • OS (14)
        • Database (10)
        • Network (21)
        • 컴퓨터구조 (6)
        • 시스템 프로그래밍 (23)
        • Algorithm (29)
      • HTTP (8)
      • Infra (1)
        • Docker (1)
      • 프로그래밍언어론 (15)
      • Programming Language(Sub) (77)
        • Kotlin (1)
        • Python (25)
        • C++ (51)
        • JavaScript (0)
      • FE (11)
        • HTML (1)
        • CSS (9)
        • React (0)
        • Application (1)
      • Unix_Linux (0)
        • Common (0)
      • PS (13)
        • BOJ (7)
        • Tip (3)
        • 프로그래머스 (0)
        • CodeForce (0)
      • Book Review (4)
        • Clean Code (4)
      • Math (3)
        • Linear Algebra (3)
      • AI (7)
        • DL (0)
        • ML (0)
        • DA (0)
        • Concepts (7)
      • 프리코스 (4)
      • Project Review (6)
      • LegacyPosts (11)
      • 모니터 (0)
      • Diary (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
lumana
[Algorithm] Introduction
상단으로

티스토리툴바