본문 바로가기
반응형

프로그래밍/PYTHON25

[12일차] python 정렬 알고리즘(Sorting algorithm) python 정렬 알고리즘에 대해서 정리한다. ※ 정렬 알고리즘 - 정렬은 고전적인 문제 풀이법이자 알고리즘의 기초이다. - python에서는 sorted()라는 정렬 알고리즘이 제공되지만 알아둔다면다른 지원되지 않는 언어에서 사용이 가능하고 또한 sorted() 함수가 어떻게동작하는지 알아갈수 있다. - 정렬에는 선택정렬, 거품정렬, 합병정렬 등이 있는데 이 3가지 정렬이 가장 대표된다고 볼수 있다. - 여러가지 정렬 알고리즘에 대해서 알아보고 싶다면 구글에서 sorting algorithm 이라고검색해서 wikipedia를 들어가보면 표로 볼수있다.( wikipedia에 보면 저번에 말했던 빅-오 표기법으로 최상, 평균, 최악의 경우에 정렬들의 성능이 나와있다 ) 오늘은 선택정렬(selection s.. 2017. 2. 23.
[11일차] python 꼬리 재귀함수 python 꼬리 재귀함수에 대해서 정리한다 꼬리 재귀함수를 알아보기전에 재귀함수를 사용하면 안좋은 점에 대해서 알아본다. - 재귀함수는 하향식 접근법으로 자기 자신을 계속해서 호출한다음에 차례대로리턴값을 반환해준다. 그런데 여기서 함수가 완전히 종료되지 않았으므로(리턴값을반환하지 않았다) 함수가 끝날때까지 호출된 위치를 기억해줘야한다. 이때 계속 되는 함수 호출이 반복되다 보면 메모리상 공간이 추가적으로필요하게 되기때문에 공간을 잡아둬야 한다.그러면 주소값을 저장하고 있는 스택이 넘치거나 프로그램의 속도가 느려질수가 있다.( 공간 복잡도 ) - 값이 클수록 똑같은 리턴값을 가지고 있는 함수의 호출이 여러번 중복 되면서 상당히비효율적이게 된다. 하지만 꼬리 재귀함수를 사용하면 이런 문제점들이 해결 가능해.. 2017. 2. 23.
[10일차] 재귀함수를 이용한 간단한 지수, 곱셈함수 재귀함수를 이용한 간단한 지수, 곱셈함수 ※ 재귀 함수를 이용한 지수함수 - 프로그래밍으로 표현해서 예를 들면 pow(2, 3)와 같은 n, m 값을 받으면 n의 m제곱에해당하는 결과를 출력해주는 함수를 재귀함수를 이용해서 만들면 된다 - 재귀 함수에 동작 방식은 함수에 n, m에 2, 3을 입력 받으면if 문을 통과해서 return 2 * recursion_pow(2, 2) 가 되면서 곱셈을 하기전에다시 자기자신인 recursion_pow 함수에 n, m 값을 2, 2로 주면서 호출하게 된다. 이런식으로 자기자신인 recursion_pow를 호출하는 반복을 m값이 0이 될때까지 한다.m값이 0이 되면 if 조건은 False가 되기때문에 else 문으로 들어가서return 1을 반환해준다. 그 retur.. 2017. 2. 21.
[10일차] 포맷 스트링(지정자) / 재귀함수(recursion function) / map() 포맷 스트링(지정자) / 재귀함수(recursion function) / map()에 대해서 정리한다. ※ 포맷 스트링( 지정자 )( format string ) - 문자열 내에서 출력 형태를 지정한다 정수 -> %d실수 -> %f문자 -> %c문자열 -> %s16진수 -> %x8진수 -> %o * 실수를 지정할때 소수 둘째자리까지 나타내려면 "%.2f" 와 같이 써주면 되고%.02f는 둘째자리까지 표현하지만 남는 부분은 0으로 표시해주겠다는 의미이다 * 정수 또한 마찬가지로 %2d가 되면 위에서처럼 1이 %d보다 한칸 밀려서 출력되는걸 볼수 있고%02d는 남는 자리를 0으로 채워주는걸 볼수 있다 위와는 상관 없는 얘기지만 리스트를 사용할때 리스트 안에 원소들의 자료형을 바꿔줄때 이전까지는for문으로 원.. 2017. 2. 21.
[9일차] python for 문법 python for 문법에 대해서 정리한다. ※ For - python에서는 다른 언어에서의 사용법과 약간 다른 부분이 있다 - 집합( 리스트, 튜플, 딕, 집합 ) 내의 원소들을 다룰때에 주로 많이 사용한다 예). 리스트 N의 원소를 x 변수로 가져와서 하나씩 출력한다 N = [] for x in N: print(x) - Built-in function(내장 함수)인 range(start, end[,step])와 for문을 이용하면 수열을 간단하게 표현할수 있다( range 함수에서 [step]은 따로 적어주지 않으면 1씩 증가하게 된다 ) 예). 1부터 10000까지의 수열을 리스트로 출력한다 N = [] for i in range(1, 10001): N += [i] print(N) ( 10000까지.. 2017. 2. 20.
[8일차] python 모듈 / testcode python 함수 / 모듈 / testcode에 대해서 정리한다 함수에 대해서 간단하게 한번더 얘기하면 함수는 한번만 정의해두면언제든지 호출을 통해서 실행 시킬수 있다. ( 윤년을 계산해주는 함수를 만들었는데 모듈을 통해서 접근하면 나중에 윤년 계산이 필요할때마다 이 함수를 가져와서 쓸수 있다 ) ※ 모듈(Module) - python에서는 하나의 파일을 모듈로 취급한다 - 모듈의 import를 통해서 이용하면 자기가 만든 함수를 언제든지 사용할수 있다( 단, 자기가 만든 함수의 내용이 들어있는 파일이 sys.path에 적혀있는 경로안에 있을 경우에만이다 ) - 보통 python 홈폴더 경로에 모듈이 들어있으면 import가 가능한데 32bit와 64bit의 기본 경로가 다르니 이점을 생각해줘야 한다 *.. 2017. 2. 17.
[7일차] python 대출 상환금 계산 프로그램 ※ 대출 상환금 계산 프로그램 - 대출 상환금 계산 프로그램 조건 1). 입력값 * 대출원금 2017. 2. 16.
[7일차] python 함수 / 실수, 양수, 음수체크 python 함수 / 실수체크, 음수체크에 대해서 정리한다 ※ 함수(Function) - 함수는 def로 함수 정의를 시작 해주고 'def 함수명 (전달 값): ' 의 형식으로 작성한다 def function_name (argument): statement1 statement2 ... return data (return 문장이 없는 함수는 프로시저라고도 한다) - 함수 안에는 여러가지 계산 문법들이 들어있고 마지막에 return 으로 값을 돌려준다 ( python에서는 돌려주는 값(return)이 있으면 함수, 돌려주는 값이 없으면 프로시저라고 부른다. 둘다 함수라고 불러도 상관은 없다 ) - return 값이 왔다는건 그 함수는 동작이 끝났다고 보면 된다 - python 실행기에서 간단한 함수를 만들어.. 2017. 2. 16.