목록취업준비/코딩테스트 (8)
취업준비

1. 정렬 : 이름, 학번, 학점 등의 키를 항목값의 대소 관계에 따라 데이터 집합을 일정한 순서로 바꾸어 늘어놓는 작업 2. 버블 정렬 : 이웃한 두 원소의 대소 관계를 비교해 필요에 따라 교환을 반복하는 알고리즘, 단순교환정렬이라고도 함. 3. 단순 선택 정렬 : 가장 작은 원소부터 선택해 알맞은 위치로 옮기는 작업을 반복하며 정렬 4. 단순 삽입 정렬 : 주목한 원소보다 더 앞쪽에서 알맞은 위치로 삽입하며 정렬 5. 퀵 정렬 : 가장 빠른 정렬 6. 병합 정렬 : 배열을 앞부분과 뒷부분의 두 그룹으로 나누어 각각 정렬한 후 병합하는 작업을 반복 7. 힙 정렬 : 힙에서 최댓값은 루트에 위치한다는 특징을 이용하여 정렬

- 너비우선검색 : 낮은 레벨부터 왼쪽에서 오른쪽으로 검색하고, 한 레벨에서 검색을 마치면 다음 레벨로 내려가는 방법. 폭우선검색, 가로검색, 수평검색이라고도 한다. - 깊이우선검색 : 리프에 도달할 때까지 아래쪽으로 내려가면서 검색하는 것을 우선으로 하는 방법. 세로검색, 수직검색이라고도 한다. - 전위 순회 : 노드방문 -> 왼쪽자식 -> 오른쪽자식 - 중위 순회 : 왼쪽자식 -> 노드방문 -> 오른쪽자식 - 후위 순회 : 왼쪽자식 -> 오른쪽 자식 -> 노드방문
- 문자열 검색 : 어떤 문자열 안에 다른 문자열이 포함되어 있는지 검사하고, 만약 포함되어 있다면ㅇ ㅓ디에 위치하는지 찾아내는 것. 1. 브루트 포스법 : 선형 검색을 단순하게 확장한 알고리즘 -> 효율 안좋음. #브루트 포스법으로 문자열 검색 >>> def bf_match(txt: str, pat: str) -> int: pt=0 pp=0 while pt != len(txt) and pp != len(pat): if txt[pt] == pat[pp]: pt += 1 pp +=1 else: pt = pt-pp +1 pp=0 return pt - pp if pp == len(pat) else-1 if __name__ == '__main__': s1 = input('텍스트 입력:') s2 = input('..
#양의 정수n의 팩토리얼 구하기 >>> def factorial(n:int) -> int: if n>0: return n*factorial(n-1) else: return 1 >>> if __name__ == '__main__': n=int(input('출력할 팩토리얼값 입력해라:')) print(f'{n}의 팩토리얼은 {factorial(n)}입니다') 출력할 팩토리얼값 입력해라:23 23의 팩토리얼은 25852016738884976640000입니다 [Do it! 자료구조, 알고리즘 Python] #하노이의 탑 구현하기 >>> def move(no:int, x:int, y:int) -> None: if no>1: move(no-1, x, 6-x-y) print(f'원반[{no}]fmf {x}기둥에서 {..
#원하는 개수(N)만큼 값을 입력받아 마지막 N개를 저장 >>> n= int(input('정수를 몇개 저장할까?:')) 정수를 몇개 저장할까?:10 >>> a=[None]*n >>> cnt=0 >>> while True: a[cnt%n]=int(input((f'{cnt+1}번째 정수 입력:'))) cnt+=1 retry = input(f'계속할까?:(y...yes / n...no):') if retry in{'N','n'}: break 1번째 정수 입력:15 계속할까?:(y...yes / n...no):y 2번째 정수 입력:58 계속할까?:(y...yes / n...no):y 3번째 정수 입력:3 계속할까?:(y...yes / n...no):y 4번째 정수 입력:7 계속할까?:(y...yes / n.....
검색 : 어떤 조건을 만족하는 데이터를 찾아내는 것. 검색의 종류 : 배열 검색(선형검색, 이진 검색, 해시법), 연결 리스트 검색, 이진 검색 트리 검색 # while 문으로 작성한 선형 검색 알고르짐 >>> from typing import Any, Sequence >>> def seq_search(a:Sequence, key:Any) -> int: ##int는 왜 입력하는건지??? i=0 while True: if i ==len(a): return-1 #검색에 실패하여 -1을 반환 if a[i] ==key: return i #검색에 성공해 현재 검사한 배열의 인덱스를 반환 i+=1 >>> if __name__='__main__': SyntaxError: invalid syntax >>> if __n..
# 2-1.학생5명의 시험 점수를 입력받아 합계와 평균 출력하기 >>> print('학생 그룹 점수의 합계와 평균을 구한다.') 학생 그룹 점수의 합계와 평균을 구한다. >>> score1=int(input('1번 학생의 점수 입력해라:')) 1번 학생의 점수 입력해라:42 >>> score2 = int(input('2번 학생의 점수 입력해라:')) 2번 학생의 점수 입력해라:75 >>> score3 = int(input('3번 학생의 점수 입력해라:')) 3번 학생의 점수 입력해라:85 >>> >>> score4 = int(input('4번 학생 점수 입력:')) 4번 학생 점수 입력:98 >>> score5=int(input('5번 학생 점수 입력:')) 5번 학생 점수 입력:12 >>> total=..
>>> #Do it 파이썬 : 1-1 #세 정수를 입력받아 최댓값 구하기 >>> print('세 정수의 최댓값을 구합니다.') 세 정수의 최댓값을 구합니다. >>> a=int(input('정수 a의 값을 입력하세요:')) 정수 a의 값을 입력하세요:4 >>> b=int(input('정수 b의 값을 입력하세요:')) 정수 b의 값을 입력하세요:5 >>> c=int(input('정수 c의 값을 입력하세요:')) 정수 c의 값을 입력하세요:1 >>> maximum = a >>> if b> maximum: maximum = b >>> if c> maximum : maximum = c >>> print(f'최댓값은 {maximum} 입니다.') 최댓값은 5 입니다. # 이름 입력받기 >>> print('이름을 입..