[백준] Baekjoon Online Judge
문제
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은 리스트에 속하지 않는다).
출력
각 테스트 케이스마다 한 줄에 걸쳐 정답을 출력한다.
풀이
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
while (true) {
int n, cnt = 0;
bool arr[101] = { false };
while (true) {
cin >> n;
if (n == 0 || n == -1) break;
arr[n] = true;
}
if (n == -1) break;
// 입력 받을 수 있는 최댓값이 100이므로 50까지만 탐색하면 된다.
for (int i = 1; i < 51; i++) {
if (arr[i] && arr[i * 2]) cnt++;
}
cout << cnt << '\n';
}
return 0;
}
'백준 > C++' 카테고리의 다른 글
[Baekjoon/C++] 7562번 - 나이트의 이동 (3) | 2024.03.17 |
---|---|
[Baekjoon/C++] 5635번 - 생일 (0) | 2024.03.15 |
[Baekjoon/C++] 5073번 - 삼각형과 세 변 (1) | 2024.03.08 |
[Baekjoon/C++] 3273번 - 두 수의 합 (1) | 2024.03.07 |
[Baekjoon/C++] 9455번 - 박스 (0) | 2024.03.03 |