hyunjin

[C++][수학1 - 벌집(2292)] 등차수열, 등차 수열 합, 수열 점화식 본문

알고리즘 연습/백준

[C++][수학1 - 벌집(2292)] 등차수열, 등차 수열 합, 수열 점화식

_h.j 2020. 8. 15. 15:20
728x90

백준 수학1 벌집 바로가기

 

 

백준 채점 결과

 

[문제 간단 설명]

벌집

N(1 ≤ N ≤ 1,000,000,000)이 주어지면 1에서부터 몇 칸을 걸쳐야 갈 수 있는지 출력하기

예를 들면, 13까지는 3개, 58까지는 5개를 지난다.

 

 

[소스 코드]

#include <iostream>

using namespace std;

int main(void){
	int num,result=1;
	cin >> num;

	if (num == 1) {
		cout << 1;
		return 0;
	}
	while (3*result*result - 9 * result +8 <= num) {
		result++;
	}
	cout << result-1;
	return 0;
}

 

 

[문제 풀이 전략]

1.먼저 보기 쉽게 엑셀에 숫자를 써봤다.

벌집 칸 정리

2. 관계식을 뽑아 냈다.

관계식 정리

 

벌집의 거리 별 관계식을 뽑아 냈다.

 

3. 그 다음 범위에 맞는 n을 찾아낸다.

이 과정이 조금 아쉽다. for문 말고 더 좋은 방법은 없을까??

다른 사람들의 풀이를 보니 관계식 찾고 for은 다 이렇게 했다.

어차피 이 문제의 핵심은 관계식 찾는 것

 

 

 

[공부한 것]

진짜 수열 점화식, 이 문제와 상관은 없지만 근의 공식 다 까먹었다. 

기억이 안난다.

 

 

쓰다보니 옛날에 풀었던 기억이 났다.

 

 

출처/참고

등차 수열, 등차 수열의 합 바로가기

수열의 귀납적 정의 바로가기

math1_점화식.pdf
0.08MB

728x90