군수열 Javascript

cptkuk91·2022년 8월 1일
1

Algorithm

목록 보기
43/161
post-custom-banner

군수열이란?

어떤 규칙에 의하여 항을 몇 개씩 묶어서 이루어지는 수열을 군수열이라고 한다.

군수열 특징

  1. 규칙성을 갖는다.
  2. 각 군 안의 항의 개수를 조사한다.
  3. n 군의 첫째항을 구한다.

ex) 첫째항부터 순서대로 1개, 2개, 3개, ... 묶어서 나타낸다. 묶음을 차례로 제1군, 제2군, 제3군 이라고 한다.

(1), (1, 2), (1, 2, 3), (1, 2, 3, 4), ...

제 n군의 항의 개수 = n개
따라서 제1군 부터 n군까지의 항의 개수는 아래와 같이 표현할 수 있다.

군수열 문제를 풀 때는 아래 공식이 중요하다.

(n * (n + 1) / 2)

그럼 k 번째 항을 구한다고 가정하면 어떤 식으로 문제를 풀어야할까..

예를 들어 10번 째 항을 구한다고 가정하자.

function solution(k) {
	let gun = 0;
	for(let i = 1; i < k; i++){
    	if(k <= (i * (i + 1) / 2){
        	gun = i - 1;
            break;
        }
    }
    return k - (gun * (gun + 1) / 2);
}

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)
post-custom-banner

0개의 댓글