백준 4641 Doubles C++
2023. 9. 18. 18:37ㆍ알고리즘문제 풀이/백준
문제
2~15개의 서로 다른 자연수로 이루어진 리스트가 있을 때, 이들 중 리스트 안에 자신의 정확히 2배인 수가 있는 수의 개수를 구하여라.
예를 들어, 리스트가 "1 4 3 2 9 7 18 22"라면 2가 1의 2배, 4가 2의 2배, 18이 9의 2배이므로 답은 3이다.
입력
입력은 여러 개의 테스트 케이스로 주어져 있으며, 입력의 끝에는 -1이 하나 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 2~15개의 서로 다른 자연수가 주어진다. 각 자연수는 100보다 작으며, 리스트의 끝은 0으로 판별한다(0은 리스트에 속하지 않는다).
출력
각 테스트 케이스마다 한 줄에 걸쳐 정답을 출력한다.
풀이
브루트 포스 알고리즘(완전 탐색 알고리즘)을 이용해서 각 항이 2배가 되는지 여부를 일일이 체크해준다.
#include <iostream>
using namespace std;
int main() {
int a[16], n, count;
while (a[0] != -1) {
count = 0;
for (int i = 0; i < 16; i++) {
cin >> a[i];
if (a[i] == -1) {
return 0;
}
if (a[i] == 0) {
n = i;
break;
}
}
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if ((a[i] == 2 * a[j]) || (a[j] == 2 * a[i])) {
//check if a[i] and a[j] are doubles.
//cout << "i: " << i << " j: " << j << '\n';
count += 1;
}
}
}
cout << count << '\n';
}
return 0;
}'알고리즘문제 풀이 > 백준' 카테고리의 다른 글
| 백준 5430 AC C++ (0) | 2023.09.19 |
|---|---|
| 백준 4999 아! Python (0) | 2023.09.18 |
| 백준 3190 뱀 C++ (0) | 2023.09.18 |
| 백준 3052 나머지 C++ (2) | 2023.09.18 |
| 백준 2920 음계 C++ (0) | 2023.09.18 |