목록python (44)
Kim Seon Deok
정렬 (sorting) key를 항목값의 대소관계에 따라 데이터 집합을 일정한 순서로 바꾸어 늘어놓는 작업 오름차순 정렬 : 값이 작은 데이터를 앞에 늘어놓는 것 내림차순 정렬 : 값이 큰 데이터를 앞에 늘어 놓는 것 안정적인 알고리즘 : 값이 같은 원소의 순서가 정렬한 후에도 유지되는 것 안정적이지 않은 알고리즘 : 정렬한 후에도 원래의 순서가 유지된다. 내부 정렬 : 정렬할 모든 데이터를 하나의 배열에 저장할 수 있는 경우에 사용하는 알고리즘 외부 정렬 : 정렬할 데이터가 많아서 하나의 배열에 저장할 수 없는 경우에 사용하는 알고리즘 버블 정렬 = 단순 교환 알고리즘 이웃한 두 원소의 대소 관계를 비교하여 필요에 따라 교환을 반복하는 알고리즘 패스 : 일련의 비교 교환하는 과정 패스를 한 번 수행할 ..
순수한 재귀 = 재귀호출을 여러 번 실행하는 함수 하향식 분석 : 가장 위쪽에 위치한 상자의 함수 호출부터 시작하여 계단식으로 자세히 조사해 나가는 분석방법 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # 순수한 재귀 함수 구현하기 >> 하향식 분석 def recur(n: int) -> int: """순수한 재귀 함수 recur의 구현""" if n > 0: recur(n-1) print(n) recur(n-2) x = int(input(f'정숫값을 입력하세요.: ')) recur(x) Colored by Color Scripter cs recur(4)의 실행과정 1. recur(3)을 실행 2. 4를 출력 3. recur(2)를 출력 상향식 분석 : 아래쪽부터 쌓아 올리며 분석하는 방법 ..
재귀 : 어떠한 이벤트에서 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의되는 경우 양의 정수를 순서대로 곱한다 = 순차곱셈 = math.factorial()함수 factorial()함수는 n-1팩토리얼값을 구하기 위해 자신과 똑같은 factorial()함수를 또 호출 재귀 호출 : 자기 자신과 똑같은 함수를 호출 1 2 3 4 5 6 7 8 9 10 11 12 13 # 양의 정수 n의 팩토리얼 구하기 def factorial(n:int) -> int: """양의 정수 n의 팩토리얼값을 재귀적으로 구함""" if n > 0: return n * factorial(n-1) else: return 1 if __name__ == '__main__': n = int(input('출력할 팩토리얼값을 입력하세..
큐 = 데이터를 임시 저장하는 자료구조 FIFO(first in first out) 구조 : 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출 구조 인큐(enque) :큐에 데이터를 추가 디큐(deque) : 데이터 를 꺼내는 작업 프론트(front) : 데이터를 꺼내는 쪽 >> 맨 앞의 원소 리어 (rear) : 데이터를 넣는 쪽 >> 맨 끝의 원소 링 버퍼 = 배여 맨 끝의 원소 뒤에 맨 앞의 원소가 연결되는 자료구조 프론트(front) : 맨 앞 원소의 인덱스 리어(rear) : 맨 끝 원소 바로 다음의 인덱스(다음 인큐되는 데이터가 저장되는 위치) 링 버퍼로 큐를 구현하면 원소를 옮길 필요 없이 front와 rear 의 값을 업데이트하는 것만으로 인큐와 디큐를 수행할 수 있다. 모든 처리의 복잡..
https://www.acmicpc.net/problem/14670 14670번: 병약한 영정 프로그램의 입력은 표준 입력으로 받는다. 입력의 첫 줄에는 약의 종류의 개수 N이 입력된다. (1 ≤ N ≤ 100) 그 다음 N개의 줄에는 각각 약의 효능과 약의 이름이 숫자로 주어진다. (0 ≤ Me, Mn ≤ 10 www.acmicpc.net -약의 종류의 개수 N을 입력받는다. -for을 통해 N번만큼 a,b를 문자열로 구성된 리스트 형태로 입력받아, a는 effect(약의 효능)리스트로, b는 name()리스트에 append. 영정이가 겪는 증상의 수 R을 입력받는다. -for문을 통해 R번만큼 c를 문자열로 구성된 리스트 형태로 입력받아 , s 리스트에 append 하여 2차원 배열을 만든다. -fo..