본문 바로가기

자기계발일지/코딩일기

알고리즘 기초 (코딩을 잘하는 법)

반응형

알고리즘

알고리즘(라틴어, 독일어:Algorithmus, 영어:algorithm알고리듬, IPA:[ǽlɡərìðm])은 수학과 컴퓨터 과학, 언어학 또는 관련 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것을 말한다

https://ko.wikipedia.org/wiki/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

 

알고리즘 - 위키백과, 우리 모두의 백과사전

알고리즘(영어: algorithm), 셈법은 수학과 컴퓨터과학, 언어학 또는 엮인 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법이다. 계산을 실행하기 위한 단계적 절차를 의미하기도

ko.wikipedia.org

알고리즘의 핵심

문제를 모델링하고 해결하는 것이 바로 알고리즘이다.

코딩을 잘하고 싶다?

많이 해야 한다. 다만 많이 한다고 해서 코딩을 잘할 수는 없다.

코딩에 있어 임하는 자세

1. 코딩을 진행하면서 모르는 문제가 발생한다.
 > 문제의 답을 모르겠으니 알 때까지 고민한다 (?)  --- ×
 > 도움을 받는 것과 이해하는 것 그리고 검색을 하는 것도 중요한 문제 해결 능력이다.
2. 조금 고민해보고 모르겠으면 빠르게 답을 찾고 이해하도록 노력한다.
 > 처음 공부할 때 2-3일 정도 고민하는 것은 좋은 습관이다.
 > 익숙해진 이후 2-3시간 고민해보는 것이 좋고
 > 많이 익숙해진 이후는 20-30분 내로 고민해보고 답이 안 나오면 답을 찾아야 한다.
BFS/브루트 포스/다이내믹 프로그래밍을 할 수 있다. 그런데 알고리즘 문제는 못 푼다.
> 이문제를 푸는 알고리즘을 어떻게 알아낼 수 있을까?
 -- 이것이 바로 코딩을 잘하기 위해 고민해야 할 점이다.
> 알고리즘 문제를 풀어보면서, 알고리즘을 익혀야 한다.

다양한 문제를 많이 풀면서 경우의 수를 늘려야 코딩을 잘할 수 있다.

효율성

  • 알고리즘 문제를 해결하는 코드 작성을 마쳤다. 이 프로그램이 얼마나 효율적인지 알고 싶을 때 가장 중요한 것은?
1. 수행 시간
2. 사용한 메모리
3. 코드의 길이

정답) 1. 수행 시간

프로그램을 작성했는데 시간이 1달이 걸리면 1달 동안 실행시켜야 한다.

메모리가 부족하면 램을 구매하면 된다. 이러한 이유로 수행 시간이 가장 중요한 것이다.

문제의 크기

  • 개발을 한다고 하면 문제를 해결해야 하고 문제의 크기는 존재한다.
  • 예시 1) 게임 동시 접속자 수
  • 10만 명이 동시 접속하는 게임과 100명이 동시접속하는 게임을 개발하는 것은 차이가 크다.
  • 가장 빠른 방법으로 해결하기 힘든 경우 그보다 상대적으로 느린 방법을 이용하기도 한다.
  • 다만 문제를 해결할 수 있는 범위 내에서 느린 방법을 사용해야 한다.
  • 문제의 크기를 보통 N이라고 하고, 문제의 크기 N 에따라 프로그램 시간이 다르다.
반응형

'자기계발일지 > 코딩일기' 카테고리의 다른 글

알고리즘 기초 (시간복잡도)  (0) 2022.03.07