먼저 해당 문제의 로직이다 이렇게 스택의 성질을 이용해서, 스택 배열을 구현하거나, STL stack을 이용하면 비교적 쉽게 풀린다. 하지만..! 나는 '스택'이란 것 자체를 이용하지 않고 이문제를 풀어보고싶었다( ?!?) 그래서 두가지의 소스코드가 나왔다. 일단 스택을 이용한 소스코드이다. 매우간결하다 #include #include #include #include using namespace std; vectorans; int main(void) { int n; int num; cin >> n; stack s; int j = 1; for (int i = 0; i > num; if (s.empty() || s.top() < num) { //stack이 empty거나, to..
골드바흐의 추측이란? "2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다" 는 것이다! 이 문제는 골드바흐의 파티션, 즉 짝수 n이 주어졌을 때 짝수 n을 이루는 '두 소수'를 구하는 문제이다. 단, 파티션이 2개 이상 주어졌을 때는 두 소수간의 차이가 가장 적은 것만을 출력한다 아래가 내가 푼 로직이다. 처음에는 그냥 for문과 if문으로 조건을 만들어서 파티션을 출력하려고 했지만너무 복잡해질 것 같아서 다른 방법을 찾았기에 이 방법을 썼다! (속도는 확실히 좀 느리다) 백준 골드바흐의 추측 소스 #include #include using namespace std; bool prime_num[10001]; //기본값 0 void prime() //에라토스테네스의 체 // 소수 == false /..