[JS/Algorithm] 알고리즘 ?

Jay Kim·2020년 3월 24일
0
post-thumbnail

알고리즘?

어떠한 문제를 해결하기 위한 절차를 만들어 내는 과정, 혹은 형태다.
문제를 찾아 큰 문제를 잘게 분해하고, 절차를 추론해내며, 반복되는 패턴을 찾는 일련의 과정이라고 할 수 있다.

문제를 풀기 전에, 과정을 하나하나 의사코드(pseudocode)로 적어낼 수 있다.

  • 의사코드(pseudocode) ?
    프로그램의 절차 하나하나를 우리가 실제로 사용하는 일반적인 언어를 이용해서 작성하는 방법이다. 이는 실제로 컴퓨터가 알아들을 수 있는 언어가 아니기 때문에, 실행할 수 있는 코드는 아니지만, 코딩을 하기 전에 어떻게 프로그램이 작동하는지 흐름을 파악할 수 있다.

문제 해결 과정

대략적인 문제 해결 과정은 다음과 같다.

문제 분해 - 의사코드 작성 - 코드로 옮기기

예를 들어
냉장고에서 물을 꺼내, 컵에 따른 후 마시는 문제가 있다고 하자.

1) 문제 분해

2) 의사 코드 작성

냉장고 문을 연다.
물을 꺼낸다.
컵에 물을 붓는다.
컵에 담긴 물을 마신다.

다음과 같이 의사코드를 작성할 수 있다.

3) 코드로 옮기기

이를 컴퓨터가 알아볼 수 있는 코드로 바꾸면

// 의사코드 진행 과정을 알아보기 위해, 변수는 제외
if (물을 마시고 싶다 === true) {
	냉장고 문 = open;
    컵 = 물;
    컵에 담긴 물을 마심 = true;
}

가장 중요한 점은 문제를 분해하며 문제를 풀다보면 비슷하게 반복되는 코드가 보이게 된다.
그 부분이 알고리즘이라고 생각하면 쉽다.

profile
minuzai

0개의 댓글