알고리즘

2022. 3. 7. 11:27·알고리즘(Algorithm)
728x90
반응형

정의 : 어떤 문제를 해결하기 위한 일련의 절차나 방법을 공식화한 형태로 표현한 것을 의미한다.

 

알고리즘의 조건

- 입력: 외부에서 제공되는 자료가 0개 이상존재

- 출력: 적어도 2개이상의 서로 다른 결과를 내어야 한다.

- 명확성: 수행 과정은 명확하고 모호하지 않은 명령어로 구성되어야 한다.

- 유한성: 유한 번의 명령어를 수행 후 (유행 시간 내)에 종료한다.

- 효율성: 모든 과정은 명백하게 실행 가능 한 것이어야 한다.

 

예시

집에서 대학교까지 가는 방법 -> 지하철 / 버스 / 자가용 등등

그 중에서 가장 빠르게 갈 수 있는 길을 찾기, 버스나 지하철의 배차 시간

 

내가 공부해야할 알고리즘(좋은 프로그램을 만드는 아이디어)들

  • 자료구조 (프로그램이 다뤄야 하는 자료를 프로그램 상에서 표현하는 형태)
    • 정렬
    • 탐색(이진탐색, 깊이우선탐색(DFS), 너비우선탐색(BFS) 등)
  • 알고리즘 패더라임: 백트래킹,그리디 등
  • 그래프 알고리즘
  • 기계학습: SVM(서포트 벡터 머신) <이건 공부해야하는진 잘 모르겠다>
  • 문자열 알고리즘

일상 => 블록체인, 유튜브(알고리즘) 등등 

 

공간복잡도 -> 메모리를 얼마나 잘 활용할수있는가 (반도체쪽)

시간복잡도 -> 수행 시간이 빠른가 (처리해야 할 자료의 양(n)과 관련해서 알고리즘의 수행시간 "비례관계")

Big-O 표기법 : 제일 높은 차수만 나타냄 ex)2n+3 => O(n) |2n^2+2n+3=> O(n^2)

<자세한 나중에 추가로>

 

공부 방식

  • 특정 언어에 대한 해답을 보지 말고 말로 된 설명, *의사코드(psesdo-code)
  • 알고리즘을 스스로 생각할 수 있는 능력을 갖춰야함
  • 다른 알고리즘이 있을 때 내 알고리즘과 비교해서 어떤게 더 좋은지 파악할 수 있어야함
  • 타인이 봤을 때 이해 할 수 있어야함
  • 정상작동하는가?
  • 알고리즘과 관련된 수학을 공부하라

 

*의사코드 (슈도 코드) : 프로그램을 작성할 때 각 모듈이 작동하는 논리를 표현하기 위한 언어이다.

일반적인 언어로 코드를 흉내 내어 알고리즘을 써놓은 코드를 말한다. 의사코드는 말 그대로 흉내만 내는 코드->

컴퓨터에서 실행할 수 없으며, 특정 언어로 프로그램을 작성하기 전에 알고리즘의 모델을 대략적으로 모델링하는 데에 쓰인다.


 

 

●참고

 

https://seamless.tistory.com/96

 

프로그래밍과 알고리즘 공부 방법 - 김창준님

퍼온이의 생각 이 글은 월간 마소 2002년에 기고된 김창준 님의 "어떻게 공부할까: 프로그래머를 위한 공부론"이라는 기사 내용입니다. 해당 글을 읽고 나서 많은 생각을 하였고 개발자로 성장하

seamless.tistory.com

https://namu.wiki/w/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

https://6u2ni.tistory.com/41-

 

알고리즘(algorithm)이란?

알고리즘은 문제 해결을 위한 단계들을 체계적으로 명시한 것을 의미한다. 알고리즘이란 어떠한 문제를 해결하기 위한 일련의 절차나 방법을 공식화한 형태로 표현한 것을 의미한다. 알고리즘

6u2ni.tistory.com

https://namu.wiki/w/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

 

728x90
반응형
저작자표시 (새창열림)

'알고리즘(Algorithm)' 카테고리의 다른 글

백준 1978번: 소수찾기  (0) 2022.04.30
백준 4949번 : 균형잡힌 세상 [Python]  (0) 2022.04.18
백준 1110번 (파이썬)  (0) 2022.04.06
자료구조 - 큐  (0) 2022.03.28
자료구조 - 스택 / 힙  (0) 2022.03.28
'알고리즘(Algorithm)' 카테고리의 다른 글
  • 백준 4949번 : 균형잡힌 세상 [Python]
  • 백준 1110번 (파이썬)
  • 자료구조 - 큐
  • 자료구조 - 스택 / 힙
Hun-bot
Hun-bot
IT를 중심으로 다양한 것
  • Hun-bot
    로봇이 만드는 눈사람
    Hun-bot
  • 전체
    오늘
    어제
    • All Article (128)
      • Programmers (6)
        • TIP (1)
        • SQL (2)
        • LV1 (1)
        • LV2 (2)
        • LV3 (0)
      • Baekjoon (31)
        • Bronze (10)
        • Silver (19)
        • Gold (2)
        • Platinum (0)
        • Diamond (0)
      • Leetcode (0)
        • Easy (0)
        • Medium (0)
        • Hard (0)
        • SQL (0)
      • 알고리즘(Algorithm) (42)
      • JavaScript (40)
      • Linux (7)
      • JSP (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      티스토리챌린지
      JS #JavaScript #프로그래머스 #카카오
      SQL
      JS #javascript #객체 #Object
      JSP #Vscode #톰켓 #Tomcat #Java #Web #jdk
      프로그래머스
      JavaScript #Set #Collection
      리눅스
      Algorithm
      LeetCode #JS #Javascript #Algorithm
      c++
      JS #클래스
      오블완
      알고리즘 #Algorithm
      프로그래머스 #자바스크립트 #JS
      Python #알고리즘
      리눅스 #입문
      알고리즘
      JS #프로그래머스 #숫자의표현 #알고리즘
      JS #정규표현식
      Vue #Vue.js #정리
      고득점 Kit
      자바스크립트
      JS #JavaScript #프로그래머스 #알고리즘
      자바스크립트 #연습문제
      async await #js #문법 #자바스크립트 #비동기
      Programmers
      Javascript
      BaekJoon
      파이썬 #입력 #python #input
    • 최근 댓글

    • hELLO· Designed By정상우.v4.10.3
    Hun-bot
    알고리즘
    상단으로

    티스토리툴바

    티스토리툴바