본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 22380 : 割り勘

반응형

https://www.acmicpc.net/problem/22380

 

22380번: 割り勘

ひとつめのデータセットでは 1 人あたりの支払いは 100 円である.1 番目と 2 番目の参加者は 100 円を支払うことができるが,3 番目の参加者は 100 円を支払うことができないため,所持金であ

www.acmicpc.net

간단 구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

참가자 n명, 개최비 m, 정답 ans, 인당 걷어야 하는 돈 moneyToWalk, 각 참가자들의 소지금 vector변수 money를 선언한 후 적절히 입력받습니다.

📔 풀이과정

money에 대해 for loop를 수행합니다.

1. i번 참가자의 소지금이 걷어야 하는 돈보다 적으면 소지금만큼 밖에 걷을 수 없습니다.

2. 반대의 경우 인당 걷어야 하는 돈만큼 걷으면 됩니다.

1, 2 번 조건에 따라 ans에 더해줍니다.

📔 정답출력

ans를 출력합니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;

int n, m, ans, moneyToWalk;
vector <int> money;

int main(){
  while(1){
    cin >> n >> m;
    if(!n && !m) break;
    ans = 0;
    moneyToWalk = m / n;
    money.resize(n);
    for(int i = 0; i < n; i++) cin >> money[i];
    for(auto p : money){
      if(moneyToWalk > p) ans += p;
      else ans += moneyToWalk;
    }
    cout << ans << '\n';
  }
}

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.