반응형
#include <bits/stdc++.h>
using namespace std;
vector <int> getDivisor(int x) {
vector <int> div;
for(int i = 1; i < x; i++){
if(x % i == 0) div.push_back(i);
}
return div;
}
string getResult(int x){
int sum = 0;
vector <int> div = getDivisor(x);
for(auto d : div) sum += d;
if(sum == x) return "PERFECT\n";
if(sum < x) return "DEFICIENT\n";
return "ABUNDANT\n";
}
int main(){
while(1){
int x;
cin >> x;
if(!x) break;
cout << x << ' ' << getResult(x);
}
}
https://www.acmicpc.net/problem/6491
구현문제였습니다
📕 풀이방법
📔 입력 및 초기화
while loop를 수행합니다. 수 x를 선언해 입력받습니다. x가 0이면 while loop를 탈출해줍니다.
📔 풀이과정
getResult함수를 수행합니다. 1. 내분에서 x의 약수를 vector로 반환하는 getDivisor함수를 수행합니다. 2. 조건에 따라 정답 문자열을 반환합니다.
📔 정답출력
반환된 정답 문자열을 출력합니다.
📕 Code
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 6779 : Who Has Seen The Wind (0) | 2021.12.29 |
---|---|
(C++) - 백준(BOJ) 6609 : 모기곱셈 (0) | 2021.12.27 |
(C++) - 백준(BOJ) 6437 : Golf (0) | 2021.12.25 |
(C++) - 백준(BOJ) 6436 : Floppies (0) | 2021.12.24 |
(C++) - 백준(BOJ) 6249 : TV Reports (0) | 2021.12.23 |