알고리즘이란? 수학과 컴퓨터과학, 언어학 또는 엮인 분야에서 어떠한 문제를 풀어맺기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것, 계산을 실행하기 위한 단계적 절차 알고리즘의 종류 1. 재귀 알고리즘 어떤 함수에서 자신을 다시 호출하여 작업을 수행하는 방식의 알고리즘 2. 정렬 알고리즘 원소들을 번호순이나 사전 순서와 같이 일정한 순서대로 열거하는 알고리즘 3. 탐색 알고리즘 - 선형 탐색 맨 앞이나, 맨 뒤에서부터 순차적으로 찾아보는 알고리즘 - 이진 탐색 중간지점을 기준으로 데이터를 반씩 나눠서 탐색하는 알고리즘 - 해시 탐색 데이터의 내용과 저장한 곳의 index를 미리 연결해서 빠르게 찾는 알고리즘 4. 그래프 알고리즘 그래프 이론과 관련된 문제를 푸는 알고리즘 5. 문자열 검색 ..

문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 고른 수열은 오름차순이어야 한다. 입력 첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 옮긴 횟수 K를 출력한다. 두 번째 줄부터 수행 과정을 출력한다. 두 번째 줄부터 K개의 줄에 걸쳐 두 정수 A B를 빈칸을 사이에 두고 출력하는데, 이는 A번째 탑의 가장 위에 있는 원판을 B번째 탑의 가장 위로 옮긴다는 뜻이다. 기본적인 백트래킹 유형의 문제이다. 백준 N과 M(15649번 Permutation) 문제와 거의 동일한데 여기서는 수열이 오름차순이라는 조건이 붙는다. 백트래킹의 기본..

입력 첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 옮긴 횟수 K를 출력한다. 두 번째 줄부터 수행 과정을 출력한다. 두 번째 줄부터 K개의 줄에 걸쳐 두 정수 A B를 빈칸을 사이에 두고 출력하는데, 이는 A번째 탑의 가장 위에 있는 원판을 B번째 탑의 가장 위로 옮긴다는 뜻이다. 하노이탑 문제는 유명한 '재귀 문제'인데 N을 1에서 부터 4 정도까지 증가 시켜보면서 Hanoi(n) = 2 × Hanoi(n-1) + 1