반응형 Algorithm20 재귀함수, 꼬리 재귀 재귀함수 - 함수내에서 자기 자신을 호출하여 어떠한 조건이 될 때 까지 반복하여 수행하는 함수 예) 피보나치 수열, 하오니의 탑 (추후 코드 작성) 재귀함수의 장단점 장점: 코드량이 줄어든다. 코드의 가독성이 좋아진다. 코드 검증이 쉬워진다 단점 재귀적 문제 분석/ 설계가 직관적이지 않음. 맹목적인 믿음이 필요(수학적 귀납법 이해 필요) 스태 오버플로 발생 가능 함수 호출에 따른 과부하 꼬리재귀 꼬리호출/ 꼬리재귀 - 함수 코드 제일 마지막에서 다른 함수를 호출하는 경우 - 꼬리 호출, 꼬리 재귀는 다른 함수를 호출하였을 때 자기 자신이 스택프레임이 남아있지 않아야한다. - 이것 또한 최적화기능을 제공하는 함수도 있고 아닌 함수도 있다. 단점 - 덜 직관적이다. - 최적화를 위해 작성 2023. 9. 7. [Algorithm] 체크, 체크메이트 체크 - 체스에서 체크란 체스 기물이 이동하여 상대방 킹을 위협하는 위치에 도착했을 때, 체크라고 부른다. 체크메이트 - 체크메이트는 체크 상태인 킹이 체크 상황을 벗어날 수 없는 경우에는 체크메이트라고 부른다. 체크 알고리즘 1. 체스 기물이 이동한 후 다음턴에 이동할 수 있는 경로를 확인한다. 2. 이동 경로에 상대방 킹이 있으면 체크 체크는 비교적 간단하다. 이동 후 다시한번 경로확인을 통해 킹을 찾으면 체크 체크메이트 알고리즘 1. 체크상태인 킹 기물에 대한 정보를 가져온다. 2. 킹은 자신의 위치에서 8방향으로 움직일 수 있기에 8방향에 대한 백트래킹(직선, 대각선, 나이트, 폰)를 확인한다. 3. 경로를 확인 도중 상대편 기물이 발견 되면 다음 방향으로 움직인다. 4. 8방향으로 모두 확인하였.. 2022. 10. 17. [Algorithm] A* (A-Star) 알고리즘 A-Star 알고리즘이란 시작점과 도착점을 알고 있는 상태에서 최단 경로를 찾아주는 알고리즘 PathFinding.js qiao.github.io A-Star 알고리즘 시뮬레이터 A-Star 알고리즘 핵심 내용 간단요약 A-Star 알고리즘에서 가장 핵심이 되는 F, G , H F = 출발 지점에서 목적지까지의 총 Cost 합 해당 지점을 사용할지 말지를 정해주는 중요한 녀석 값이 작을 수록 좋음 F = G + H G = 현재 좌표에서 출발 지점까지의 총 Cost 합 값이 작을수록 좋음 H = 현재 좌표에서 도착지점 까지의 거리 맨하탄 거리를 구하는 공식을 사용 값이 작을수록 좋음 H = Heuristic(휴리스틱) A-Star 알고리즘 핵심 내용 1. G G는 현재 노드가 출발지점으로까지의 총 Cost.. 2022. 10. 7. [Algorithm] 백준 Python 2941 - 크로아티아 알파벳 Link : https://www.acmicpc.net/problem/2941 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. 입력 첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '.. 2022. 9. 15. 이전 1 2 3 4 5 다음 반응형