소수 문제 * start ~ end 사이의 수에서 소수를 찾는다. first = 찾은 첫번째 소수 sum = 범위 안에 있는 모든 소수의 합 풀이 * is_prime = 소수인지 체크 is_first = 첫번째 소수인지 체크 * 어떤 수 num을 2부터 (num-1)까지 나머지연산(%)을 하였는데 0이 나오지 않았다면 num은 소수이다. 생각할 점 * 숫자 1은 소수가 아님을 생각하여 따로 조건문을 작성하자. 코드 #include #include #include using namespace std; int main() { int start, end, first = -1, sum = 0, is_prime = 1, is_first = 1; cin >> start >> end; if (start == 1) s..
쉽게 푸는 문제 문제 * 1 22 333 4444 55555 666666 ··· 위와 같은 수열에서 start와 end 사이의 값을 모두 더한다. 풀이 * 2중 반복문을 사용해 수열을 만든다. * 조건을 통해 start ~ end 사이의 값을 모두 더한다. 생각할 점 * goto문이 들어가는 곳에 출력과 return을 넣어도 가능하다. 코드 #include #include #include using namespace std; int main() { int start, end, i = 0, sum = 0, count = 1; cin >> start >> end; while (++i) { for (int j = 0; j = start) sum += i; if (cou..
소수 찾기 문제 * n개의 숫자 중에서 소수가 몇개 있는지 찾는 문제 풀이 * 숫자 1은 소수가 아님을 생각하자 * num을 2부터 (num-1)까지 나누었는데 나머지가 0은 숫자가 없다면 소수 생각할 점 * 코드 #include #include #include using namespace std; int main() { int count = 0, max, num, check = 0; cin >> max; while (max--) { cin >> num; if (num == 1) continue; for (int i = 2; i < num; i++) { if (num % i == 0) { check++; break; } } if (!check) count++; check = 0; } cout
최대공약수와 최소공배수 문제 * 두 수의 최대공약수와 최소공배수를 찾은 문제 풀이 * num1 과 num2를 i로 나누어 본다. i는 2부터 시작해서 점점 커지다가 나머지가 0이되는 구간을 만나면 i는 다시 2부터 시작한다. * i가 점점 커지다가 num1과 num2보다 커지면 더이상 약수가 없다는 의미. * 출력한다. 생각할 점 * 코드 #include #include #include using namespace std; int main() { int num1, num2, GCF = 1; int num11, num22; cin >> num1 >> num2; num11 = num1; num22 = num2; int i = 2; while (num1 != 1 && num2 != 1) { if (num1 <..
후위표기법 (Postfix Notation) 후위표기법이 필요한 이유 * 우리가 사용하는 사칙연산 공식이 중위표기법이다. (2+6/2)+10*3 * 딱 보면 컴퓨터가 이해하기 힘들어 보인다. 컴퓨터가 이해하기 쉽게 도와주는 방법이 후위표기법을 쓰는 것! 어떻게 바꾸는데? * 다른 곳에서 보세여 ㅎㅎ (설명 잘한 곳이 너무 많아서 의욕을 잃음..) 필요 개념 * 기본적인 C문법 + 스택만 알면 만들 수 있다. 스택 만들기 #define _CRT_SECURE_NO_WARNINGS #include #define STACK_SIZE 256 char stack[STACK_SIZE]; int top = -1; void push(char num) { if (top >= STACK_SIZE) { printf("\nst..