반응형 SMALL 정올 문제풀이13 정올 1102 : 스택(stack) 아래 코드에서 가장 중요한 건 '버퍼' 이다. scanf가 어떤 식으로 동작하는지 개념을 잘 알고 있어한다. getchar(); 를 이용하여 버퍼를 비워주지 않으면, 버퍼에 '\n'가 계속 남아있어서 원하는 결과가 나오지 않는다. #include int main() { char input; int n,add,count=0; int num[100]; scanf("%d", &n); while (getchar() != '\n'); // 그냥 getchar();로 해도 된다. for (int i = 0; i < n; i++) { scanf("%c", &input); if (input == 'i') { scanf("%d", &add); num[count++] = add; getchar(); } else if (i.. 2020. 5. 10. 정올 1880 : 암호풀기 #include #include // 대문자 A의 아스키값 : 65 // 소문자 a의 아스키값 : 97 int main() { char alpha[1000]; char code[1000]; gets_s(alpha); gets_s(code); // 공백도 입력받기 위해서 gets_s함수 사용 for (int i = 0; i = 65 && code[i] 2020. 5. 2. 정올 2813 : 소수의 개수 (+ 에라토스테네스의 체) 두가지 방법을 이용하여 해결할 수 있다. 1. 범위내의 모든 수들이 소수인지 아닌지 확인하여 소수의 개수를 카운트 하는 방법 2. '에라토스테네스의 체' 이용 1. 일반적인 방법 소수일때는 1, 소수가 아닐때는 0을 반환한다. #include #include int prime(int x) { if (x == 1)return 0; for (int i = 2; i 배열의 인덱스의 값이 소수이면 0, 소수가 아니면 1을 넣을 것이다. -> 0과 1은 소수가 아니므로 처음에 prime[0]=prime[1]=1; 을 작성하여 미리 1로 초기화 해둔다. -> 2부터 n의 제곱근까지 각각의 배수를 인덱스로 가지고 있는 배열의 값을 1로 바꾼다. -> 이 때, 각 수의 제곱부터만 처리하면 된다. -> 추가로 증감식도 .. 2020. 4. 30. 정올 1740 : 소수 소수는 약수의 개수가 1과 자기자신, 총 2개라는 점을 이용하여 구현해보았다. 처음에는 이를 이용하지 않고 알아보고자 하는 수 m을 2부터 차례대로 m까지 나눠보는 식으로 하였는데 m이 1일 경우에는 따로 처리해주어야해서 복잡해졌다. 하지만 약수의 개수가 2개라는 점을 이용하여 1부터 자기자신까지 나눠주게 되면 따로 처리해주어야할 필요가 없어진다. 약수의 개수가 2개라는 점을 이용하는 것이 가장 간단한 것 같다. #include int count = 0; int primeSum(int m,int n) { int sum = 0; for (int i = m; i 2020. 4. 29. 이전 1 2 3 4 다음 반응형 LIST