본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 5102 : Sarah's Toys

반응형

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

 

5102번: Sarah's Toys

Input will be a number of lines, with each line representing a night in Sarah’s house. Each line will have 2 whole numbers, separated by a space. The first number is how many stuffed toys she owns at the time. The second number is the number of toys left

www.acmicpc.net

구현문제였습니다.

📕 풀이방법

📔 입력 및 초기화

while loop를 수행합니다.지역변수 a, b, diff를 선언합니다. a는 전체 인형 수, b는 흩어진 인형 수이며 a, b에 수를 입력받으면 diff에 차이를 저장합니다. 이는 곧 침대에 있는 인형의 수가 됩니다.

📔 풀이과정

 3개의 경우가 있습니다.  1. 침대에 있는 인형 수가 2개 미만일 때 : 0 0이 답입니다. 2. 홀수개일 때    비둘기집 원리에 의해 무조건 3개를 하나의 그룹으로 묶어줘야합니다. diff - 3을 2로 나눈 몫과 1이 답입니다. 3. 짝수개일 때 : 짝지을 수 있으므로 diff를 2로 나눈 몫과 0이 답입니다.

📔 정답출력

조건에 따라 답을 출력합니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
int main(){
    while(1){
        int a, b, diff;
        cin >> a >> b;
        if(!a && !b) break;
        diff = a - b;
        if(diff < 2) cout << 0 << ' ' << 0;
        else if(diff % 2) cout << (diff - 3) / 2 << ' ' << 1;
        else cout << diff / 2 << ' ' << 0;
        cout << '\n';
    }
}