입력 >> 알고리즘 >>출력알고리즘은 어떤 문제를 풀기 위한 절차나 방법알고리즘은 주어진 '입력'을 '출력'으로 만드는 과정알고리즘의 각 단계는 구체적이고 명료해야 함한 가지 문제를 푸는 여러 가지 방법, 즉 여러 가지 알고리즘 중에 상황에 맞는 적당한 알고리즘을 골라
리스트(list)는 정보 여러 개를 하나로 묶어 저장하고 관리할 수 있는 기능입니다. 리스트를 만들려면 대괄호( ) 안에 정보 여러 개를 쉼표(,)로 구분하여 적어 주면 된다.주어진 숫자 n개 중에서 가장 큰 숫자(최댓값)를 찾는 문제17, 92, 18, 33, 58,
n에 관계없이 상수 시간이 소요된다.n에 비례하는 시간이 소요된다. (n의 복잡도를 지닌다)n제곱에 비례하는 시간이 소요된다. (복잡도를 지닌다.)n세제곱에 비례하는 시간이 소요된다. (복잡도를 지닌다.)n제곱에 비례하는 시간이 소요된다. (복잡도를 지닌다.)1부터 n
• 크기가 다른 원반 n개를 출발점 기둥에서 도착점 기둥으로 전부 옮겨야 합니다.• 원반은 한 번에 한 개씩만 옮길 수 있습니다.• 원반을 옮길 때는 한 기둥의 맨 위 원반을 뽑아, 다른 기둥의 맨 위로만 옮길 수 있습니다(기둥의 중간에서 원반을 빼내거나 빼낸 원반을
‘키 순서로 줄 세우기’는 대표적인 정렬 문제의 예이다. 왜냐하면, 이 문제는 ‘학생의 키라는 자료 값을 작은 것부터 큰 순서로 나열하라’는 문제와 같은 말이기 때문이다.1 . 학생 열 명이 모여 있는 운동장에 선생님이 등장합니다.2 . 선생님은 학생들을 둘러보며 키가
2 4 5 1 3 ← 2 < 4이므로 그대로 둡니다.2 4 5 1 3 ← 4 < 5이므로 그대로 둡니다.2 4 5 1 3 ← 5 > 1이므로 5와 1의 위치를 서로 바꿉니다.2 4 1 5 3 ← 5 > 3이므로 5와 3의 위치를 서로 바꿉니다.2 4 1 3
1 | 학생들에게 일일이 지시하는 것이 귀찮아진 선생님은 학생들이 알아서 줄을 설 수 있는 방법이 없을지 고민입니다. 열 명이나 되는 학생들에게 동시에 알아서 줄을 서라고 하면 너무 소란스러울 것 같아서, 다섯 명씩 두 조로 나누어 그 안에서 키 순서로 줄을 서라고 시
앞서 병합 정렬로 줄 세우기는 학생들을 일단 두 그룹으로 나눠 각각 병합 정렬을 한 후, 정렬된 두 그룹에 있는 학생들의 키를 다시 비교하여 한 줄로 합치는(병합) 과정이었습니다.이번에 배울 퀵 정렬(Quicksort)은 ‘그룹을 둘로 나눠 재귀 호출’하는 방식은 병합
첫번째 방법 (숫자를 차례로 더하는 방법)입력 값 n이 커질수록 덧셈을 훨씬 더 많이 반복해야 함n번의 복잡도 (계산량, 수행 시간)를 지닌다.두번째 방법n 값의 크기와 관계없이 덧셈, 곱셈, 나눗셈을 각각 한 번씩만 하면 답을 얻을 수 있음3번의 복잡도를 지닌다.‘키
스택과 큐 스택 스택(Stack) 자료구조는 한쪽 끝이 막힌 형태 (ex : 한쪽 끝이 막힌 주차장, 종이컵 수거함 등) • 입구가 하나이기 때문에 먼저 들어간 것이 가장 나중에 나오는 구조 (선입후출; First In Last Out, 후입선출; Last In F
None을 나올 때까지 찾음 노드 검색에 사용한 변수 snode와 sparent가 이후에 사용되기 때문에 다른 변수 명 이용 재귀적 알고리즘 구현의 값의 return과 재귀적 호출에 대응 되는 부분 루트 노드가 삭제 되는 경우 예외 처리 (재귀적 구현에서 유사하게 구
• 모든 노드에 대해 좌서브 트리의 높이 (hL; height of Left subtree)와 우서브 트리의 높이 (hR; height of Right subtree) 의 차가 1을 넘지 않는다• 모든 노드에 대해 좌서브 트리의 높이(깊이)와 우서브 트리의 높이의차가