[LeetCode] Arranging Coins

준규·2022년 9월 27일
0

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 을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글