반응형
https://www.acmicpc.net/problem/6975
brute force문제였습니다.
📕 풀이방법
📔 입력 및 초기화
test case의 개수 t를 선언 후 입력해줍니다. t만큼 while loop를 수행하며 n, sum을 선언해줍니다.
📔 풀이과정
1. 자신의 수를 제외한 약수를 vector 형태로 반환해주는 getDiv함수를 수행합니다. 그 결과 값을 div변수에 저장합니다.2. div의 list들을 getSum함수의 인자로 넘겨 합을 구해줍니다. 이 결과를 sum에 저장합니다.
📔 정답출력
조건에 따라 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
vector <int> getDiv(int n){
vector <int> tmp;
for(int i = 1; i < n; i++) {
if(n%i == 0) tmp.push_back(i);
}
return tmp;
}
int getSum(vector <int> div){
int sum = 0;
for(auto d : div) sum += d;
return sum;
}
int main(){
int t;
cin >> t;
while(t--){
int n, sum;
cin >> n;
vector <int> div = getDiv(n);
sum = getSum(div);
if(sum > n) cout << n << " is an abundant number.";
else if(sum == n) cout << n << " is a perfect number.";
else cout << n << " is a deficient number.";
cout << '\n' << '\n';
}
}
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - 백준(BOJ) 1251 : 단어 나누기 (0) | 2022.02.11 |
---|---|
(C++) - 백준(BOJ) 2422 : 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 (0) | 2022.02.08 |
(C++) - 백준(BOJ) 6811 : Old Fishin’ Hole (0) | 2022.01.03 |
(C++) - 백준(BOJ) 4690 : 완전 세제곱 (0) | 2021.12.06 |
(C++) - 백준(BOJ) 3276 : ICONS (0) | 2021.11.29 |