[리버싱과 무관할수도] 백준 난쟁이문제 - bruteforce

2017. 12. 16. 19:290x02 Reverse Engineer/0x03. Etc

728x90

/*

문제 


일곱 난장이가 있어야 하는데 2명의 난장이가 숨어 들어 왔다.


문제 풀기 위한 조건 

그 2명을 찾아내어야 한다.

2명을 제외하면 난장이들의 키의 합은 100이 된다.

주어진 난쟁이 키는 20, 7, 23, 19, 10, 15, 25, 8, 13 이다.


결과는 오름차순으로 나타내어져 있다

7 8 10 13 19 20 23 

*/


#include <stdio.h>

#include <iostream>

#include <algorithm>

#define MAX 100

#define NUM 9

int main(int argc, char* argv[])

{

// 우선 입력 값을 예시로 주었으니 이 값을 배열에 선언한다

int sum = 0;

int small[NUM] = { 20, 7, 23, 19, 10, 15, 25, 8, 13 };

// 실제로는 입력 값으로 주어야 한다.


/*for (int i = 0; i < NUM; i++)

{

scanf("%d", &small[i]);

}*/


for (int i = 0; i < NUM; i++)

{

sum += small[i];

}


// 9개의 숫자를 무 차별 적으로 2개를 제외하고 나머지는 더해야 한다.

// 그렇다면 [0] [1] ~> [0] [2] 이런식으로 쭉쭉 빼면서 진행해보자

for (int j = 0; j < NUM-1; j++)

{

for (int k = j + 1; k < NUM; k++)

{

if (sum - (small[j] + small[k]) == MAX)

{

printf("small[j] = %d\n", small[j]);

printf("small[k] = %d\n", small[k]);

small[j] = -1;

small[k] = -1;

}

}

}


std::sort(small, small + NUM);


for (int i = 0; i < NUM; i++)

{

if (small[i] == -1)

continue;

printf("%d\n", small[i]);

}

}


'0x02 Reverse Engineer > 0x03. Etc' 카테고리의 다른 글

suninatas 9번문제  (0) 2017.12.30
suninatas 10번 문제  (0) 2017.12.30
처음 만들어 본 64비트 크랙미 분석  (0) 2017.11.30
Inline Assembly  (0) 2017.10.30
[H4C CTF] Let's Decrypt simple write up  (0) 2017.10.29