LeeWang_31
이왕31
LeeWang_31
전체 방문자
오늘
어제
  • 분류 전체보기 (234)
    • 프로젝트 (2)
      • 사이드 프로젝트 (2)
      • Codestates_pre_project (0)
    • 프론트엔드 (169)
      • Html (19)
      • CSS (18)
      • JavaScript (29)
      • Codestates (76)
      • 코딩노트 (27)
    • 백엔드 (10)
      • node (10)
    • 구르는 돌 🌑 (16)
      • Codestates (11)
      • 생각 (4)
      • 공부 흔적 (1)
    • 정보 (18)
      • 오류노트 (2)
      • 인텔리제이 정보 (9)
      • 깃 정보 (3)
      • 기타 정보 (4)
      • 안드로이드스튜디오 정보 (0)
    • CS (7)
      • 이론공부 (7)
    • App (6)
      • Android (3)
      • Kotlin (3)
    • 컴퓨터 수학 (5)
      • 암호론 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 생활코딩
  • 안드로이드스튜디오범블비
  • 코드스테이츠
  • 안드로이드스튜디오파이어베이스
  • figjam
  • codestate
  • 1292
  • 웹팩
  • linux
  • 사이드프로젝트
  • 코딩애플
  • 알고리즘
  • 2609
  • React
  • 파이어베이스연동
  • 사용자 친화 웹
  • css
  • 번들링
  • linuix 코드스테이츠
  • 자바스크립트
  • 백준
  • html
  • 사용자친화웹
  • JavaScript
  • DP
  • TODOlist
  • ubuntu
  • 코플릿
  • 2693
  • UI/UX

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
LeeWang_31

이왕31

[알고리즘] 알고리즘
프론트엔드/Codestates

[알고리즘] 알고리즘

2022. 12. 12. 10:14

코드스테이즈 41기 교육 내용을 정리하고 있습니다.
틀린 부분이 있으면 댓글로 알려주시면 감사하겠습니다

알고리즘

알고리즘은 어떤 문제를 해결하기 위해서 일련의 절차를 정의하고, 공식화한 형태로 표현한 일종의 문제의 풀이 방법입니다. 알고리즘은 문제를 해결하는 최선의 선택입니다. 프로그래밍에서 알고리즘은 input 값을 통해 output값을 얻기 위한 계산과정을 의미합니다. 주어진 문제를 해결할 때 정확하고 효율적으로 결과 값을 얻는 것이 필요하고 그때 바로 이 알고리즘을 사용합니다.

 

알고리즘이라 명시되려면 일정한 조건들을 만족해야 합니다.

 

  • 입력
    • 알고리즘은 출력에 필요한 자료를 입력받을 수 있어야 합니다. 꼭 받지 않는 경우도 있습니다
  • 출력
    • 알고리즘은 최소 하나의 출력을 갖습니다. 출력이 없다면 해당 알고리즘의 실행이 종료되었는지 알수 없습니다. 이것은 유한성과도 관련이 있습니다.
  • 유한성
    • 알고리즘은 명령어를 수행한 후 유한한 시간 내로 종료되어야합니다.
      이는 알고리즘은 반드시 종료되어야하고, 무한루프에 갖혀서는 안된다는 뜻입니다.
  • 명확성
    • 알고리즘의 각 단계는 단순하고 명확해야 하며, 모호해서는 안 됩니다.
  • 효율성
    • 알고리즘은 가능한 효육적이어야 합니다. 모든 과정은 명백하게 실행 가능해야 하며, 실행 가능성이 떨어지는 알고리즘은 효율적이지 못한 알고리즘이라 볼 수 있습니다. 알고리즘은 시간 복잡도와 공간 복잡도를 통해 결정이 되므로, 시간 복잡도와 공간 복잡도가 낮을 수록 효율적인 알고리즘이라 볼 수 있습니다.

알고리즘 해결 방법

문제를 이해하라

제 경우에도 문제를 이해하지 못하고 진행하다 실패한 경험이 많습니다. 문제 자체를 이해하는것, 제한사항은 무엇이고, 주의사항은 무엇인지 꼼꼼하게 확인해야합니다. 주어진 조건은 토대로 무제가 무엇인지 이해하는 것부터 시작해야합니다.

문제를 어떻게 해결할 수 있을지, 전약을 세웁니다.

  • 수도코드 작성 전, 인간의 사고로 문제 해결해보기
  • 연습장에 그림을 그려가며 전체 흐름을 이해하기 
  • 수도코드 작성해보기

코드작성 해보기

코드로 작성해보며 막히는 부분은 검색을 통해 해결하며 새로 알게된 내용은 정리를 해둡니다.

코드스테이츠 메모

앞으로 우리가 개발자로서 만나게 될 대부분의 개발 태스크는 알고리즘 문제만큼 어렵지 않습니다. 그러나 새로운 문제에 봉착했을 때, 전략과 알고리즘을 구상하여 실제로 코드로 구현해 보는 경험은 매우 중요합니다. 많은 기업에서 주니어 개발자를 채용할 때에, 알고리즘 풀이를 통해 지원자의 역량을 가늠합니다. 알고리즘 풀이를 통해 지원자의 로직과 문제해결 방식을 확인하고, 이를 통해 개발자다운 사고방식을 보게 됩니다. 이 스프린트를 통해 개발자의 사고방식을 연습하세요.

저작자표시 (새창열림)

'프론트엔드 > Codestates' 카테고리의 다른 글

[정규표현식] 정규표현식  (0) 2022.12.12
[알고리즘] 시간 복잡도 & 공간 복잡도  (0) 2022.12.12
[최적화] Lighthouse  (0) 2022.12.05
[Testing] TDD  (0) 2022.12.02
[컴퓨터 공학] 운영체제  (0) 2022.11.30
    '프론트엔드/Codestates' 카테고리의 다른 글
    • [정규표현식] 정규표현식
    • [알고리즘] 시간 복잡도 & 공간 복잡도
    • [최적화] Lighthouse
    • [Testing] TDD
    LeeWang_31
    LeeWang_31
    이왕 할 거면 기분 좋게

    티스토리툴바