반응형
https://www.acmicpc.net/problem/4084
구현문제였습니다.
📕 풀이방법
📔 입력 및 초기화
while loop를 4개의 원소가 모두 0일 때까지 돕니다. 매 loop마다 vector num에 4개의 원소를 입력받습니다.몇 번째 수열인지 출력하기 위한 변수 cnt를 선언 후 0으로 초기화합니다.
📔 풀이과정
수렴하는지 검사하는 함수 isConvergence가 false인 동안 while loop를 수행합니다. 매 수열마다 cnt++과 다음 수열을 구하는 함수 getNextSequence를 수행합니다.
📔 정답출력
cnt를 출력합니다.
📕 Code
#include <bits/stdc++.h>
#define ll long long
#define fastio ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
bool isConvergence(vector <ll> num){
if(num[0] == num[1] && num[1] == num[2] && num[2] == num[3]) return true;
return false;
}
vector<ll> getNextSequence(vector <ll> num){
vector <ll> tmp(4);
tmp[0] = abs(num[0] - num[1]);
tmp[1] = abs(num[1] - num[2]);
tmp[2] = abs(num[2] - num[3]);
tmp[3] = abs(num[3] - num[0]);
return tmp;
}
int main(){
fastio;
while(1){
int cnt = 0;
vector <ll> num(4);
for(int i = 0; i < 4; i++) cin >> num[i];
if(!num[0] && !num[1] && !num[2] && !num[3]) break;
while(!isConvergence(num)){
cnt++;
num = getNextSequence(num);
}
cout << cnt << '\n';
}
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 4619 : 루트 (0) | 2021.12.02 |
---|---|
(C++) - 백준(BOJ) 4562 : No Brainer (0) | 2021.12.02 |
(C++) - 백준(BOJ) 2997 : 네 번째 수 (0) | 2021.11.28 |
(C++) - 백준(BOJ) 2975 : Transactions (0) | 2021.11.27 |
(C++) - 백준(BOJ) 2765 : 자전거 속도 (0) | 2021.11.26 |