궤도

[EPPER] 13회 6번 본문

💻 현생/⛓ 알고리즘

[EPPER] 13회 6번

영이오 2020. 10. 9. 19:43

문제

 


풀이

 

원소가 3개니까 원소가 {1개, 2개, 3개}인 부분 집합에 대해 각각 계산을 하면 된다. 원소가 3개라서 그냥 대충대충 작성했는데 원소가 이것보다 많아지면 백트래킹으로 원소를 뽑아서 계산하는 함수를 만들어야겠다. 평범하게 노가다 한 코드라 보는데 어려움은 없을 것이다.


소스코드

 

#include <stdio.h>

int main() { 
	int arr[3];
	int k, cnt = 0;

	for (int i = 0; i < 3; i++)
		scanf_s("%d", &arr[i]);
	scanf_s("%d", &k);
	for (int i = 0; i < 3; i++) {
		if (arr[i] == k)
			cnt++;
	}
	for (int i = 0; i < 2; i++) {
		for (int j = i + 1; j < 3; j++) {
			if ((arr[i] + arr[j]) == k)
				cnt++;
		}
	}
	if ((arr[0] + arr[1] + arr[2]) == k)
		cnt++;
	printf("%d", cnt);
}
Comments