본문 바로가기
『 Python 』/Python 문제해결능력

[0] Python 문제해결

by Play IT 2020. 1. 5.
반응형

알고리즘이란? 

유한한 단계를 통해 문제를 해결하기 위한 절차나 방법을 말함.

1. 컴퓨터용어로 쓰이며, 컴퓨터가 어떤 일을 수행하기 위한 단계적 방법

2. 어떠한 문제를 해결하기 위한 절차

 

알고리즘 표현법

1. 슈도코드 

특정 프로그래밍 언어의 문법을 따라 쓰여진 것이 아니라. 일반적인

언어로 코드를 흉내 내어 알고리즘을 써놓은 코드

> 의사 코드로 흉내만 내는 코드이다.

> 실제적인 프로그래밍 언어로 작성된 코드처럼 컴퓨터에서 실행할 수 없다.

> 특정 언어로 프로그램을 작성하기 전에 알고리즘을 대략적으로 모델링하는 데에 쓰인다.

 

2. 순서도

프로그램이나 작업의 진행 흐름을 순서에 따라 여러 가지 기호나 문자로 나타낸 도표

> 흐름도, 프로그램의 논리적인 흐름 데이터의 처리 과정을 표현하는 데 사용한다.

> 프로그램을 작성하기 전에 프로그램의 전체적인 흐름과 과정 파악을 위해 필수적으로 거쳐야 되는 작업이다.

 

알고리즘의 성능 분석

무엇이 좋은 알고리즘인가?

> 정확성 : 얼마나 정확하게 동작하는가?

> 작업량 : 얼마나 적은 연산으로 원하는 결과를 얻어내는가?

> 메모리 사용양 : 알마나 적은 메모리를 사용하는가?

> 단순성 : 얼마나 단순한가?

> 최적성 : 더 이상 개선할 여지 없이 최적화되었는가?

 

알고리즘의 성능 분석 필요

> 많은 문제에서 알고리즘의 성능 분석 기준으로 알고리즘의 작업량을 비교한다.

> 실제 걸리는 시간을 측정

> 실행되는 명령문의 개수를 계산

 

시간 복잡도 - 빅-오 표기법

> 시간 복잡도 함수 중에서 가장 큰 영향력을 주는 n에 대한 항만을 표시한다.

> 계수는 생략하여 표시한다.

반응형

댓글