n 개의 동전이 주어질 때 동전으로 계단을 만들어 갈 때 가장 위쪽은 1개 부터 시작해서 점차 층을 내려갈 때 마다 계단을 만드는 동전의 갯수가 1개씩 늘어난다고 한다
이러한 상황에서 완전한 층의 개수를 리턴하는 문제이다
Example 을 보자
1번 예시와 같이 동전이 5개라면 1층 1개 , 2층 2개로 완전한 층 2개가 만들어지고 3층은 3개의 동전이 필요한데 2개의 동전 뿐이 남지 않으므로 완전한 층의 갯수는 2가 된다.
const arrangeCoins = function(n) {
let row = 0;
let coin = n;
if(n === 1) return 1;
for(let i = 1 ; i <= n; i++) {
if(i <= coin) {
coin -= i;
row ++;
}else {
return row;
}
}
};
일단 n이 1이라면 무조건 1이 리턴되므로 예외처리를 해주고
1부터 n까지 for문을 돌기로 했다
만약 i(현재 층에 필요한 동전의 갯수) 보다 coin의 갯수가 많다면
coin에서 현재 층에 필요한 동전을 빼주고 row 를 1 증가시켜준다
만약 i 가 coin보다 더 크다면 바로 row를 리턴해준다
submit 을 해보니
정답이었다!