문제 : https://www.acmicpc.net/problem/4641


[ 알고리즘 ]

입력은 1 ~ 99 숫자 중 겹치지 않게 2 ~ 15 개의 숫자가 들어옵니다.

따라서 1 ~ 99 숫자를 check 해 줄 bool 배열을 선언해 list에 들어온 input을 check하고,

list를 순회하며 자기 자신의 2배가 list 안에 있는지 count 하면 됩니다.

#include<iostream>

using namespace std;

int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);

	while(1){
		int count = 0;
		int list[16] = {};
		bool check[100] = {};

		cin >> list[0];
		if (list[0] == -1)
			break;
		check[list[0]] = true;
		for (int i = 1; i < 16; i++) {
			cin >> list[i];
			check[list[i]] = true;
			if (list[i] == 0)
				break;
		}
		for (int i = 1; i < 50; i++)
			if (check[i] && check[2 * i])
				count++;
		cout << count << '\n';
	}
}

 

+ Recent posts