본문 바로가기

IT공부/알고리즘

알고리즘의 개요와 실습 환경 구축

알고리즘의 개요와 실습 환경 구축

※ 여기서는 기본적인 C언어 문법에 대한 이해를 필요로 한다.

 

알고리즘은 프로그램의 기본이자 핵심적인 분야이다.

 

실전 알고리즘이란 단순히 알고리즘 공부를 하는 것이 아니라 실무에서 알고리즘이 어떻게 활용되는지를 알려주고 프로그래밍 대회를 준비할 수 있는 강의라는 의미이다.

 

알고리즘 소개

알고리즘이란 '문제를 해결하는 절차'이다.

  • 알고리즘은 입력, 출력(결과), 유한성(유한한 단계를 거친 이후 종료됨), 명백성(모든 명령은 명백히 제시되야함.), 효과성(모든 명령은 실행이 가능한 형태여야함)을 만족해야 한다.
  • 알고리즘은 분석을 통해 좋고 나쁨을 평가할 수 있다.
  • 알고리즘은 기초 프로그래밍과 자료구조를 공부한 이후에 배우면 좋다.
  • 알고리즘은 논리이며 수학이고 실질적인 개발에 적용되는 기초적인 아이디어이다.

알고리즘은 구체적으로 어디에 쓰일까?

알고리즘은 '개발'의 전체 과정에 사용된다.

  • 실제 프로그램을 개발할 때 효율적인 알고리즘을 적용함으로써 원하는 결과를 도출해야 한다.
  • 스케줄 관리 프로그램 : 달력에서 특정한 달에 해당하는 일 수는 어떻게 구할까?
  • 네비게이션 프로그램 : 여러 개의 중간 지점을 거쳐서 특정 지점으로 갈 때 가장 빠른 길은 무엇일까?
  • 게시판 프로그램 : 한 페이지당 게시글을 10개씩 출력해야 하는데 어떻게 출력할까?

알고리즘을 공부하는 이유

알고리즘은 프로그래머에게 피할 수 없는 숙명이다.

  • 세계적으로 알고리즘과 관련한 대회 및 기관은 정말 수없이 많다. 대표적으로 ACM-ICPC, 구글 코드잼, 코드포스, 정보올림피아드 등이 존재한다.
  • 아이러니하게도 일반적인 개발을 할 때는 높은 난이도의 알고리즘은 거의 사용되지 않는다. (이미 알려진 라이브러리 사용하기 때문)
  • 그럼에도 불구하고 기업 채용이나 각종 대회에서는 문제 해결 능력을 보기 위해서 어려운 알고리즘 문제를 제시한다.
  • 알고리즘 문제는 종합적인 개발 역량을 평가하기에 좋은 용도이기 때문이다.

C언어 개발환경 구축하기

알고리즘 공부 시 Dev C++이 가볍워서 사용하기 좋다.

 

다운로드가 완료되면 기본 설정으로 설치를 진행한다. 

 

아래와 같이 코드를 작성하기 위해 소스파일을 선택한다. 우측 상단에 기본적으로 GCC 컴파일러가 선택되어 있는 것을 확인할 수 있다.

아래와 같이 입력한 후 아래 버튼을 누르면 실행이 된다.

 

'IT공부 > 알고리즘' 카테고리의 다른 글

기초 정렬 알고리즘 문제 풀이  (0) 2020.07.28
퀵 정렬의 시간복잡도와 작동원리  (0) 2020.07.25
삽입정렬  (0) 2020.07.25
버블정렬  (0) 2020.07.25
정렬의 개요와 선택정렬  (0) 2020.07.25