[LeetCode] 1103. Distribute Candies to People

Chobby·2025년 7월 7일
1

LeetCode

목록 보기
462/481

😎풀이

  1. 모든 사람을 순회
    1-1. 단, 마지막 사람 이후 첫 사람에게 돌아옴
  2. 캔디를 1개씩 증량하며 각 사람에게 부여
    2-1. 단, 캔디가 부족하다면 남은 캔디 모두 부여
  3. 부여된 개개인의 사탕 총량 반환환
function distributeCandies(candies: number, num_people: number): number[] {
    const result = Array.from({ length: num_people }, () => 0)
    let remainCandies = candies
    let curCandyOnTurn = 1
    let curTurn = 0
    while(remainCandies) {
        curCandyOnTurn = Math.min(curCandyOnTurn, remainCandies)
        result[curTurn] += curCandyOnTurn
        remainCandies -= curCandyOnTurn
        curCandyOnTurn++
        curTurn = (curTurn + 1) % num_people
    }
    return result
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글