728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 내용, 조건, 예시는 프로그래머스 사이트 참조
멀리뛰기
먼저 n의 따른 방법의 수를 구해보자.
- n=1일 때, 1가지 방법
- (1칸)
- n=2일 때, 2가지 방법
- (1칸, 1칸)
- (2칸)
- n=3일 때, 3가지 방법
- (1칸, 1칸, 1칸)
- (2칸, 1칸)
- (1칸, 2칸)
- n=4일 때, 5가지 방법
- (1칸, 1칸, 1칸, 1칸)
- (2칸, 1칸, 1칸)
- (1칸, 2칸, 1칸)
- (1칸, 1칸, 2칸)
- (2칸, 2칸)
- n=5일 때, 8가지 방법
- (1칸, 1칸, 1칸, 1칸, 1칸)
- (2칸, 1칸, 1칸, 1칸)
- (1칸, 2칸, 1칸, 1칸)
- (1칸, 1칸, 2칸, 1칸)
- (1칸, 1칸, 1칸, 2칸)
- (2칸, 2칸, 1칸)
- (2칸, 1칸, 2칸)
- (1칸, 2칸, 2칸)
- n=6일 때, 13가지 방법
- (1칸, 1칸, 1칸, 1칸, 1칸, 1칸)
- (2칸, 1칸, 1칸, 1칸, 1칸)
- (1칸, 2칸, 1칸, 1칸, 1칸)
- (1칸, 1칸, 2칸, 1칸, 1칸)
- (1칸, 1칸, 1칸, 2칸, 1칸)
- (1칸, 1칸, 1칸, 1칸, 2칸)
- (2칸, 2칸, 1칸, 1칸)
- (2칸, 1칸, 2칸, 1칸)
- (2칸, 1칸, 1칸, 2칸)
- (1칸, 2칸, 1칸, 2칸)
- (1칸, 1칸, 2칸, 2칸)
- (1칸, 2칸, 2칸, 1칸)
- (2칸, 2칸, 2칸)
위의 n에 따른 방법의 개수가 증가하는 규칙을 보면, 1 2 3 5 8 13 으로 "피보나치 수열"이 떠오를 것입니다.
그러면
- n=7일 때, 21가지 방법
- n=8일 때, 34가지 방법
n번째 수까지 손 쉽게 구할 수 있습니다.
피보나치 수열을 구하는 반복문을 n번째까지 구현하면 알고리즘은 완료됩니다.
아래는 작성한 코드입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <string> #include <vector> #include <algorithm> using namespace std; long long solution(int n) { long long answer = 0; vector<long long> tmp; tmp.reserve(n); tmp.push_back(1); tmp.push_back(2); for(int i = 2; i < n; i++) { tmp[i] = (tmp[i-1] % 1234567) + (tmp[i-2] % 1234567); } answer = tmp[n-1]; return (answer % 1234567); } | cs |
728x90
반응형
'프로그래밍 > 프로그래머스' 카테고리의 다른 글
Lv2_[의상, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (0) | 2023.05.29 |
---|---|
Lv2_[전화번호 목록, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (0) | 2023.05.28 |
Lv2_[[1차] 캐시, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (0) | 2023.05.23 |
Lv2_[다음 큰 숫자, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (0) | 2023.03.30 |
Lv2_[올바른 괄호, C++] 풀이 및 알고리즘 정리 - 프로그래머스 (0) | 2023.03.29 |
댓글