그림으로 쉽게 이해하는 자료구조와 알고리즘 차이 #2
안녕하세요?
로스윗의 코딩캠프에 오신 것을 환영합니다.
오늘은 지난 시간 포스팅했던 자료구조에 이어 알고리즘에 대한 포스팅을 진행하도록 하겠습니다.
너~~~무 너무 쉬운 설명이고 여러분은 똑똑하니 모두 이해하실 수 있을 겁니다.
그럼 바로 레고~!!
- 알고리즘이란 무엇일까?
알고리즘이란 어떤 문제가 주어졌을때 문제를 풀기 위한 동작들의 절차 라고 할 수 있습니다.
프로그래밍에서는 입력받은 인풋을 통해서
우리가 원하는 아웃풋의 결과를 얻는 일련의 과정이라고 볼 수가 있겠죠.
게임을 예시로 쉽게 설명 드리겠습니다.
먼저 아래 그림을 한 장 보겠습니다.
현재 빨간색 동그라미에 캐릭터가 위치해 있습니다.
그리고 노란색 화살표가 있는곳까지 캐릭터를 이동시키고 싶어요.
그래서 노란색 화살표가 있는 곳에 마우스를 찍습니다.
그러면 이제 캐릭터가 그 위치로 이동을 하게 될 텐데
우리는 깊이 생각해보지 않아도 캐릭터가 빨간색 선을 통해 이동할거라고 예측할 수 있습니다.
이거는 우리가 너무 익숙해더 당연하게 받아들이지만
사실 캐릭터가 노란색 화살표까지 이동할 수 있는 방법은 수도 없이 많습니다.
위쪽으로 휘어서 돌아갈 수도 있겠구요.
지그재그로 가는 방법도 있고, 한바퀴 삥 돌아서 갈 수도 있습니다.
그럼에도 불구하고 일직선으로 가는, 이 하나의 경로를 택해서 가는 것은
컴퓨터가 최적의 경로를 찾아서 그 경로로 캐릭터를 이동시키기 때문입니다.
보통 이런경우에 적용되는 알고리즘을 A*(A Star) 알고리즘이라고 합니다.
그리고 이런 알고리즘 실력을 검증하는 방법의 하나로 코딩테스트를 하게 되는거죠.
여러분이 아시는 IT회사에서 개발자를 뽑을때 이런 코딩테스트의 과정을 반드시 거치게 됩니다.
알고리즘 문제 예시를 백준 사이트에서 하나 가져와 보겠습니다
모두 아래 문제를 한 번 같이 읽어 보겠습니다.
이 알고리즘 문제에서 인풋과 아웃풋은 무엇일까요?
인풋은 상근이가 배달해야 할 설탕 킬로그램이고,
아웃풋은 몇 봉지를 가져갈지 그 봉지의 수가 되겠죠.
문제를 보고 무엇이 인풋이고 무엇이 아웃풋인지 바로 생각이 나지 않았어도 괜찮습니다.
이제 시작이니까요 :)
그래서 이런 코딩테스트 준비는 여러분이 잘 아는 IT회사를 목표로 한다면
꾸준히 시간 투자를 해서 많이 보고 풀어보시길 권장드립니다.
이런 것이 알고리즘입니다.
가끔 알고리즘을 정말 재밌어 하시는 분들도 있지만 보통은 이 과정이 정말 지겨울 것입니다.
왜냐하면 자격증이나 프로젝트처럼 뚜렷한 목표점이 있는 것도 아니고
그렇다고 단기간에 벼락치기로 실력이 늘어서 뿌듯함을 느낄 수 있는 부분도 아니기 때문에
꾸준히 하기가 정말 어려운 과목이지만 꾸준히 한다면 나중엔 분명히 그에 대한 보상은 확실할 겁니다.
다음 포스팅에서는
알고리즘을 비교하기 위해 사용하는 빅오 표기법에 대해 알아보도록 하겠습니다.
그럼 다음 포스팅도 기대해주세요!
모두 로~스윗!!
'컴퓨터 공학 > 자료구조와 알고리즘' 카테고리의 다른 글
Arraylist(어레이리스트) 핵중요한 특징 3가지!! (0) | 2022.10.14 |
---|---|
그림으로 쉽게 이해하는 빅오표기법 시간복잡도 (0) | 2022.10.13 |
개발자 여러분, 빅오표기법이 헷갈리신가요? 확실하게 알려드리겠습니다! (2) | 2022.10.10 |
그림으로 쉽게 이해하는 자료구조와 알고리즘 차이 (1) | 2022.10.08 |
개발자가 자료구조와 알고리즘을 알아야 하는 진짜 이유 (0) | 2022.10.07 |