Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

코딩로그

[백준/BOJ/C++] 4641번 Doubles 본문

YJ/C++

[백준/BOJ/C++] 4641번 Doubles

Team DAON 2021. 12. 31. 10:24

[문제]

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은 리스트에 속하지 않는다).

[출력]

각 테스트 케이스마다 한 줄에 걸쳐 정답을 출력한다.

[Source Code]

#include <stdio.h>
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;


int main() {
	while(true){
		vector<int> vector;
		int input;
		cin >> input;
		if(input == -1) break;
		vector.push_back(input);

		while(true){
			cin >> input;
			if(input == 0) break;
			vector.push_back(input);
		}

		sort(vector.begin(), vector.end());

		int count = 0, i = 0;
		while(true){
			if(vector[i] * 2 > vector[vector.size() - 1])
				break;
			
			if(find(vector.begin(), vector.end(), vector[i] * 2) != vector.end())
				count++;
			i++;
		}
		cout << count << "\n";
	}
}

[결과 화면]

'YJ > C++' 카테고리의 다른 글

[백준/BOJ/C++] 2442번 별 찍기 - 5  (0) 2021.12.31
[백준/BOJ/C++] 5800번 성적 통계  (0) 2021.12.31
[백준/BOJ/C++] 11772번 POT  (0) 2021.12.31
[백준/BOJ/C++] 2703번 Cryptoquote  (0) 2021.12.31
[백준/BOJ/C++] 2495번 연속구간  (0) 2021.12.31