• 티스토리 홈
  • 프로필사진
    Song hyun
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
Song hyun
  • 프로필사진
    Song hyun
    • 분류 전체보기 (780)
      • 백준 (0)
      • 영어 (2)
        • Diary (0)
        • Toast Masters (2)
      • 메모 (13)
      • 설치 메뉴얼 (30)
      • Java (178)
      • MySQL (60)
      • JSP (67)
      • Springboot (46)
      • HTML,CSS, JS (71)
        • HTML (8)
        • CSS (12)
        • JavaScript (37)
        • HTML&CSS 스터디 (13)
      • C++ (7)
      • Linux (7)
      • JPA (34)
      • Kotlin (2)
      • Flutter (42)
      • Error Note (39)
      • 디자인 패턴 (12)
      • 디지털논리회로 (4)
      • 데이터베이스 시스템 (8)
      • 알고리즘 (7)
      • 운영체제 (3)
      • 이산수학 (3)
      • 인공지능 (1)
      • 자료 구조 (14)
        • 기본 개념 (14)
        • 자료구조 스터디 (0)
      • 💡My project (76)
        • 팩맨 : Java Swing 게임 제작 프로젝트 (6)
        • 네이트톡 : Java 소켓 통신 프로젝트 (4)
        • 포켓옥션 : HikariCP&JDBC CRUD 프.. (3)
        • 이지 부산 : BDIA-Devton 2024 프로.. (20)
        • 그린 유니버시티 : JSP를 사용한 학사관리 프로.. (1)
        • 애드 포커 : 웹 소켓과 Spring을 사용한 카.. (1)
        • 셸위 : 게임 친구 매칭 사이트 (21)
        • 다모아 : 개발자 중개 플랫폼 (20)
      • 📗스터디 (13)
        • CNN : 웹개발 스터디 (10)
        • Node&React로 유튜브 사이트 만들기 (3)
      • 📙독서 및 강연 기록 (36)
        • 강연 (14)
        • 독서 (22)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [알고리즘] 알고리즘 설계
        2025년 03월 13일
        • Song hyun
        • 작성자
        • 2025.03.13.:40
        728x90
        반응형

        [알고리즘] 알고리즘 설계

         

        1. 알고리즘의 설계 방식

        -알고리즘은 일련의 과정을 거쳐 생성된다.

        -주어진 문제의 입출력 조건/처리 조건등을 고려해 문제 분석 -> 이를 바탕으로 알고리즘 설계 -> 적절한 방식으로 표현 및 기술

        -알고리즘 분야에서는 문제를 푸는 방법과 절차 뿐만이 아니라, 그 방식의 정확성/효율성을 분석하는 과정도 함께 이루어진다.

         

         

        2. 최솟값 찾기 알고리즘

        -예를 들어, 아래의 두 방식 중에서 어떤 것이 더욱 효율적인 방식인지 찾아내야 한다고 치자. 아래의 사진은 여러 개의 숫자들 중에서 가장 작은 최솟값을 찾아내는 알고리즘이다. 아래의 두 가지 방법 외에도 여러 방법들이 존재한다.

        -이렇게 동일한 문제에 대해서도 여러 알고리즘이 존재할 때에는, 적절한 알고리즘을 선택해야 한다. (효율성)

         

         

        3. 탐색 문제

        -아래와 같이 뒤섞인 카드 10장 중, 원하는 숫자를 가진 카드를 찾는다고 생각해보자. 

        -순차 탐색(Sequential Search): 가장 간단한 방법은 카드를 하나씩 집어 펼쳐가며 찾는 것이다. 이 방법을 순차 탐색(Sequential Search)라고 한다.

        -이진 탐색(Binary Search): 만약 10장의 카드가 숫자를 기준으로 오름차순 정렬이 되어있다고 생각해보자. 입력 데이터가 정렬되어 있다면 순차 탐색보다는 이진 탐색이 더 효율적일 수 있다. 

        => 사용하려는 데이터의 정렬 여부에 따라서도 사용할 알고리즘이 달라질 수 있다.

         

        *이진 탐색 방법

        (1) 주어진 배열에서 중앙 위치 계산

        (2) 중앙 위치의 값과 탐색 키를 비교해, 원하는 값이라면 탐색을 종료

        (3) 원하는 값과 일치하지 않는다면 탐색 키와 중앙 값의 크기를 비교해, 이진 탐색을 순환 호출한다.

        (4) 탐색 키가 중앙의 값보다 작다면, 탐색 키는 정렬된 입력 배열의 왼쪽 절반 부분에 존재할 수 있기 때문에 배열의 왼쪽 절반을 다시 입력 배열로 사용한다. 만약 탐색 키가 중앙의 값보다 크다면 그 반대로 수행한다. (오른쪽을 입력 배열로 사용)

        728x90
        반응형

        '알고리즘' 카테고리의 다른 글

        [알고리즘] 알고리즘 분석  (0) 2025.03.16
        [알고리즘] 동적 프로그래밍 방법  (0) 2025.03.15
        [알고리즘] 분할정복 방법  (0) 2025.03.15
        [알고리즘] 욕심쟁이 방법  (0) 2025.03.14
        [알고리즘] 알고리즘의 개념  (0) 2025.03.12
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바