Develop/Algorithm
-
[Solved] 피보나치Develop/Algorithm 2020. 8. 26. 23:11
가장 유명한 수열 중 하나 피보나치 수열을 해결해보자 피보나치 수열의 n 번째 항을 구하는 문제는 크게 2가지 방법이 있다고 생각된다. 재귀를 사용하는 방법 피보나치의 이론을 생각하여 반복문을 이용하는 방법 일단 피보나치 수열이 어떤 수열인지 알아보자 이탈리아의 수학자 피보나치가 처음으로 제안되었던 문제로 토끼장에 바로 막 태어난 암수 토끼 한쌍을 넣었고, 아래의 가정하에 n번째 달 후에 이 토끼장 안에 토끼는 몇 쌍이 있을까? - 가정 - 1. 토끼 한쌍은 새로 태어난 지 한 달 후 성숙해진다. 2. 토끼 한 쌍은 성숙해진 지 한 달 후부터 매달 새로운 암수 토끼 한 쌍을 낳는다. 3. 토끼는 죽지 않는다. 자 여기서 숫자를 생각해보면 r : 태어 났을 때, R : 태어나서 성숙해졌을 때 n 개월 : ..
-
[Solved] 1 - n 까지의 합Develop/Algorithm 2020. 8. 26. 21:18
간단 그 자체인 문제이다. 방법은 2가지로 생각해볼 수 있다. 더할 값을 1 씩 n까지 증가시키면서 최종 합계에 더해주는 방법 : 수학으로 시그마 1부터 n까지 i 처음과 끝값을 더하고 두 번째와 끝에서 두 번째 값을 더하면서 최종 값을 내는 방법 : n (n + 1) / 2 1번째 방법은 누구나 생각할 수 있는 무식하게 하나씩 다 더해버리는 방법이고 2번째 방법은 그 유명한 가우스의 어린시절 일화 1부터 100까지 더하기. 그 방법을 일반항으로 표현한 것이다. javascript 코드로 대충 표현해보자면 1번은 let sum = 0; for (let i = 1; i
-
[Theory] 알고리즘. 뭐냐 넌Develop/Algorithm 2020. 8. 26. 20:46
알고리즘 Algorithm 은 간단히 말해서 문제를 해결하는 방법이다. 적절한지는 모르겠지만 예를 들자면 실생활에서 음식 레시피도 알고리즘의 하나라고 생각한다. 맛이 어떠하던지 일단 음식 완성이 문제라면 그 과정이 알고리즘이라고 생각할 수 있기 때문이다. 간단하게 라면을 끓일 때의 알고리즘이라면 물을 냄비에 넣는다. 불을 켠다. 물이 끓으면 스프를 넣는다. 스프를 넣고 면을 넣는다. 면이 익기를 기다린다. 먹는다. 물을 냄비에 넣는다. 불을 켠다. 물이 끓으면 면을 넣는다. 면이 익으면 스프를 넣는다. 먹는다. 물, 스프 면을 모조리 냄비에 넣는다. 불을 켠다. 면이 익을때까지 기다린다. 먹는다. 조금은 이상하지만 위와 같은 방식의 알고리즘들이 있을 수 있다. 혹은 서울에서 부산을 가는 방법을 생각해보면..