PDF download PDF 다운로드 PDF download PDF 다운로드

알고리즘이란 문제를 풀거나 작업을 마치기 위해 설계된 일련의 단계를 말한다. 보통 알고리즘은 프로그램을 짜기 전에, 의사코드로 작성하거나 자신의 언어와 프로그램 언어 1개 이상을 같이 써서 작성한다. 이 글은 자신의 애플리케이션을 만들기 위해서 알고리즘을 어떻게 짜는지에 대해 설명할 것이다.

  1. 어떤 문제를 풀고, 어떤 작업을 수행하고 싶은가? 달성하고자 하는 아이디어를 정했다면 그 과정을 위한 단계를 정해볼 수 있다.
  2. 시작점과 끝점을 찾는 것은 단계를 짜는데 있어 매우 중요하다. 시작점을 정하기 위해서는 다음과 같은 질문에 답을 할 수 있어야 한다. [1]
    • 어떤 데이터/입력값을 쓸 수 있는가?
    • 데이터는 어디에 위치하고 있는가?
    • 해당 문제에 쓸 수 있는 함수는 무엇이 있는가?
    • 쓸 수 있는 데이터 작업시 어떤 규칙을 지켜야 하는가?
    • 데이터 값이 서로 어떻게 연관되어 있는가 ?
  3. 시작점과 마찬가지로 다음 질문을 생각하며 끝점을 찾을 수 있다.:
    • 과정을 통해서 어떤 사실을 배울 수 있는가?
    • 시작부터 끝까지 무엇이 변했는가?
    • 무엇이 추가될 것이며 더 이상 존재하지 않는 것이 무엇인가?
  4. 넓은 범위의 단계부터 시작한다. 일상생활로 예를 들어서, 저녁에 라자냐를 만드는 것이 목표라고 가정해보자. 시작점은 레시피를 만드는 것으로 정했고, 결과물은 저녁 7시까지 라자냐를 다 요리해서 먹을 준비를 마치는 것이다. 단계를 짜보면 다음과 같을 것이다.
    • 온라인으로 레시피를 검색한다.
    • 부엌에 있는 재료를 찾아본다.
    • 사야할 재료 목록을 적는다.
    • 없는 재료를 산다.
    • 집에 돌아간다.
    • 라자냐를 준비한다.
    • 오븐에서 라자냐를 꺼낸다.
  5. 이제 단계별로 정리를 했으니, 어떻게 각 단계를 코딩할 것인지 생각해봐야 한다. 어떤 언어를 사용할 것인가? 사용 가능한 리소스에는 무엇이 있는가? 해당 언어로 각 단계를 마칠 수 있는 가장 효과적인 방법은 무엇인가? 알고리즘에 코드를 적어 넣는다. 각 단계에 코드를 점점 추가하여 전체 과정을 자세하게 작성한다.
    • 위의 라자냐 알고리즘의 예를 들면, 첫번째 단계는 온라인에서 레시피를 검색한다 였다. 그렇지만 검색에는 무엇이 포함되는가? 구체적으로 적어본다. 예를 들면 다음과 같다.
      • 컴퓨터를 켠다.
        • 인터넷에 연결되어 있는지 확인한다. 연결이 안됐다면 인터넷에 연결한다.
      • 웹 브라우저를 연다.
      • 검색어를 입력한다.
      • 레시피 링크를 클릭한다.
      • 레시피가 내가 찾고 있는 것인지 확인한다.
        • 채식이 아닌 레시피는 필터에서 제외한다.
        • 레시피가 최소한 5인분을 기준으로 하고 있는지 확인한다.
      • 자신에게 맞는 레시피를 찾을 때까지 위 과정을 반복한다.
    • 개발하는 프로그램 시스템의 성능과 같이, 자신에게 맞는 리소스를 고려한다. 라자냐의 경우, 라자냐를 만드는 사람은 인터넷을 검색하고 오븐을 사용하는 방법 등을 안다고 가정했다.
  6. 알고리즘은 구체적으로 수행하기 위해 설계된 것이며, 이 알고리즘으로 프로그램 작성을 시작할 수 있다. 다음과 같은 질문을 자문해보면서 필요한 것을 확인한다: [2]
    • 알고리즘이 문제를 해결하거나 해당 작업을 잘 수행하는가?
    • 명확하게 정의된 입력값과 결과값이 있는가?
    • 맨 마지막 결과가 더 일반적거나 구체적으로 다듬어져야 하는가?
    • 단계 중에 더 간단하게 다듬어질 것이 있는가?
    • 해당 알고리즘으로 정확한 결과가 나오는 것이 보장되는가?
    광고


  • 기존의 알고리즘을 확인하여 자신의 알고리즘을 작성할 때 아이디어를 얻는다.
  • 빠른 계산 반복문을 사용한다.
  • 코딩을 할 때는 효율에 집중한다.
  • 종료하는 것을 잊지 않는다. 안 그러면 코딩이 제대로 되지 않을 것이다.
광고

이 위키하우에 대하여

이 문서는 9,848 번 조회 되었습니다.

이 글이 도움이 되었나요?

광고