이 계산기는 무엇을 해주나요
친구들끼리 여행을 가면 한 명은 숙소를 예약하고, 다른 한 명은 기름값을 내고, 또 다른 한 명은 저녁값을 계산하기 마련입니다. 여행이 끝날 무렵엔 결국 누가 누구한테 얼마를 줘야 하는지 아무도 모르는 상황이 벌어지죠. 이 단체 여행 경비 분배 계산기는 모든 지출을 합산해 인원수대로 똑같이 나눈 뒤, 모두가 결국 같은 금액을 부담하도록 가장 간단한 송금 방법을 계산해 줍니다.
사용 방법
먼저 일행 인원수를 정하고, 각자 공동 경비로 실제 낸 금액을 입력하세요. 한 푼도 내지 않은 사람은 0으로 두면 됩니다. 계산하기를 누르면 1인당 부담해야 할 금액, 여행 총비용, 그리고 "A가 B에게 X원 송금" 형태의 정산 목록이 나옵니다. 이 목록은 최소한의 송금 횟수로 모두의 정산을 끝낼 수 있도록 정리됩니다.
계산 공식 설명
먼저 각자가 부담해야 할 공정한 몫을 구합니다: $$\text{1인당 몫} = \frac{\text{총지출}}{\text{인원수}}$$. 그다음 각자의 잔액을 계산합니다: $$\text{잔액} = \text{실제 낸 금액} - \text{1인당 몫}$$. 잔액이 양수이면 더 많이 냈으니 돌려받을 사람이고, 음수이면 적게 냈으니 보태야 할 사람입니다. 그리디(greedy) 매칭 알고리즘이 가장 많이 받을 사람과 가장 많이 줘야 할 사람을 차례로 연결해 모든 잔액이 0이 될 때까지 송금을 배정하므로, 송금 횟수가 자연스럽게 최소화됩니다.
예시로 보기
친구 세 명이 여행을 갔다고 해봅시다. 1번은 \($120\), 2번은 \($30\), 3번은 \($0\)를 냈습니다. 총합은 \($150\)이므로 각자 부담해야 할 금액은 $$\frac{150}{3} = 50$$ 달러입니다. 잔액은 각각 \(+$70\), \(-$20\), \(-$50\)가 됩니다. 3번이 1번에게 \($50\)을, 2번이 1번에게 \($20\)을 보내면, 이제 모두가 사실상 \($50\)씩 부담한 셈이 됩니다.
자주 묻는 질문
경비를 차등 분배할 수도 있나요? 아니요. 이 버전은 총비용을 인원수대로 똑같이 나눕니다. 결국 모두가 동일한 금액을 부담하게 됩니다.
어떤 통화를 사용하나요? 특정 통화에 구애받지 않습니다. 모든 항목에 같은 통화만 일관되게 사용하면 원화든 달러든 상관없습니다.
왜 송금 횟수를 최소화하나요? 송금이 적을수록 번거로움도 줄어들기 때문입니다. 그리디 알고리즘은 가장 많이 받을 사람과 가장 많이 줄 사람을 짝지어, 돈이 오가는 횟수를 최대한 줄여 줍니다.