[프로그래밍] 기본 알고리즘 가장 쉬운 설명!!

코드멍멍이(Joonieboy)·2022년 6월 5일
2
post-thumbnail

알고리즘

알고리즘이라고 하면, 보통의 사람들은 유튜브 알고리즘, 인스타그램 알고리즘부터 떠올린다. 물론, 그런 알고리즘의 정의 또한 틀린 것은 아니다. 하지만, 이 글을 보는 사람들은 방송 매체에 대한 알고리즘에 대한 설명을 바라는 것이 아닌, 프로그래밍에 기반한 설명을 기대하는 것일 거라고 추측해봅니다.

쉬운 알고리즘 정의

알고리즘을 어렵게만 생각하지 말아보자. 그리고 알고리즘에 대하여 생각을 곰곰히 해보자.

알고리즘(Algorithm)이란? 도대체 무엇일까...

간단하게 얘기하면, 알고리즘은 어떤 문제를 해결하기 위한 정의, 순서, 규칙으로 이루어진 집합 이라고 생각하면 됩니다. 하지만, 정의는 꼭! 확실해야 하고, 규칙은 무한하지 않은 유한해야 한다는 것입니다. 무슨 얘기인지 어렵게 들리나요?

예시(Example)

만일, 이 글을 보고 있는 당신은 사과를 찾고 있다고 가정을 해봅시다. 그리고 당신의 앞에는 과일들이 일정하게 정렬되어 있습니다. 블루베리, 포도, 오렌지, 사과. 여기서 사과를 찾기 위해서는 어떻게 해야 할까요?

문제: 일정하게 정렬되어 있는 과일들 사이에서 사과를 찾으세요.

[해결법]
일단, 앞에 있는 과일들을 봅시다.
블루베리부터 사과까지 정렬이 되어 있죠?
1. 블루베리는 사과입니까? [YES/NO]
2. 포도는 사과입니까? [YES/NO]
3. 오렌지는 사과입니까? [YES/NO]
4. 사과는 사과입니까? [YES/NO]

이처럼 문제 해결을 위하여 우리는 정의를 하고, 규칙을 만들었고, 순서대로 해결하였습니다. 이러한 문제 해결 집합 혹은 절차를 알고리즘이라고 합니다.

알고리즘 코딩

그러면, 코딩으로 알고리즘을 알아보는 시간을 가져볼까요? 일단, C++언어를 사용할텐데, 이에 대하여 너무 무서워 하지 않으시기를 바랍니다. 보통 프로그래밍 언어들 중에서 C++언어가 어렵다고들 하지만, C++, C# 등 C 언어의 기반입니다. 그래서 기반을 다지는 언어로 우리는 쉬운 코드들만 사용을 할 것이기 때문에 초보자들도 쉽게 따라올 수 있습니다.

#include <iostream>
#include <string>
using namespace std;
// 상단의 코드들은 알고리즘을 배우는 과정이므로 신경을 쓰지 않으셔도 됩니다.

int main()
{
    int a;

    //과일들이 앞에 놓여있는 것을 선언합니다
    string fruit[] = {"blueberry", "grape", "orange", "apple"};

    //내가 찾고있는 것은 사과다
    string thing = "apple";

    for (int i = 0; i < 4; i++)
    {
        //제가 찾고 있는 것이 사과라면, is apple 이라고 출력됩니다
        if (thing == fruit[i])
        {
            printf("is apple \n");
        }
        //제가 찾고 있는 것이 사과라면, is not apple 이라고 출력됩니다
        else if (thing != fruit[i])
        {
            printf("is not apple \n");
        }
    }

    //함수를 종료시키기 위한 리턴
    return 0;
}

앞서 예시(Example)에 나온 알고리즘을 코드로 나타낸 것입니다. 코드를 읽을 줄 아신다면, 이를 보고 간단하게 알고리즘에 대한 정의를 이번 기회에 잘 인지를 하시는 기회가 되시기를 바라겠습니다.

profile
#유니티개발자 #게임 #인플루언서 #ENFJ

0개의 댓글