반응형
https://www.acmicpc.net/problem/5102
구현문제였습니다.
📕 풀이방법
📔 입력 및 초기화
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';
}
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 23825: SASA 모형을 만들어보자 (0) | 2021.12.14 |
---|---|
(C++) - 백준(BOJ) 5220 : Error Detection (0) | 2021.12.14 |
(C++) - 백준(BOJ) 5101 : Sequences (0) | 2021.12.12 |
(C++) - 백준(BOJ) 5074 : When Do We Finish? (0) | 2021.12.11 |
(C++) - 백준(BOJ) 20867 : Rulltrappa (0) | 2021.12.10 |