본문 바로가기

분류 전체보기

(34)
C++ ACM Craft 문제 풀기 (백준 1005) 읽어주셔서 감사합니다. 오늘은 백준의 1005번, ACM craft 문제에 대해 풀어보도록 하겠습니다. *이번 문제는 1005번이라는 번호와는 걸맞지 않게 알고리즘을 사용합니다. 저도 굉장히 놀랍군요. 앞에서 6번쨰 문제에 BFS, DFS도 아닌 위상 정렬 문제를 내다니 code #include #include #include #include #define MAX(x, y)(((x) > (y)) ? (x) : (y)) #define MIN(x, y)(((x) < (y)) ? (x) : (y)) using namespace std; //this can replace with dynamic allocation, but static allocation is fore fit at KOI style int Bt[..
C++ 어린 왕자 문제 풀기 (백준 1004) 읽어주셔서 감사합니다. 오늘은 백준의 1004번, 터렛 문제에 대해 풀어보도록 하겠습니다. *이번 문제는 코딩 문제를 빙자한 수학문제입니다. 앞으로 더더욱 이런 유형을 문제가많아질테니 초보자 분들은 참고하세요. code 아래 내용은 수학적인 내용을 다량 함유하고 있습니다. 사실상 수학적인 내용을 제외하면 일반적인 초보자가 짤 수 있는 수준의 코드이지요. 수학적 내용은 아래에서 설명하겠습니다. #include #include using namespace std; #define sq(x)((x)*(x)) int main(void) { int T; int x1, y1, x2, y2; int n; int cx, cy, r; int count; bool A, B; cin >> T; for (int j = 0; j..
C++ 피보나치 함수 문제 풀기 (백준 1003) 읽어주셔서 감사합니다. 오늘은 백준의 1003번, 피보나치 함수 문제에 대해 풀어보도록 하겠습니다. 코드 아래 내용은 수학적인 내용을 다량 함유하고 있습니다. 사실상 수학적인 내용을 제외하면 일반적인 초보자가 짤 수 있는 수준의 코드이지요. 수학적 내용은 아래에서 설명하겠습니다. #include #include using namespace std; static pair mem[41]; pair fibo(int n) { pair F, S; if (mem[n] != make_pair(0, 0)) return mem[n]; if (n == 0) return make_pair(1, 0); else if (n == 1) return make_pair(0, 1); else { F = fibo(n - 2); S = ..
C++ 터렛 문제 풀기 (백준 1002) 읽어주셔서 감사합니다. 오늘은 백준의 1002번, 터렛 문제에 대해 풀어보도록 하겠습니다. 코드 아래 내용은 수학적인 내용을 다량 함유하고 있습니다. 사실상 수학적인 내용을 제외하면 일반적인 초보자가 짤 수 있는 수준의 코드이지요. 수학적 내용은 아래에서 설명하겠습니다. #include #include using namespace std; #define square(x) ((x)*(x)) int main(void) { int r1, r2; int x1, y1, x2, y2; double D; int T; cin >> T; for (int i = 0; i > x1 >> y1 >> r1 >> x2 >> y2 >> r2; D = sqrt(square(x1 - x2) + squar..
C언어 두 정수 입력수 빼서 출력하기 (백준 1001) 읽어주셔서 감사합니다. 오늘은 간단하게 두 정수를 입력받은 뒤, 두 수를 뺀 다음 출력하는 방법에 대해 알아보겠습니다. 코드 지난번과 같이 간단한 코드입니다. 굳이 어려운걸 따지자면 scanf정도가 되겠네요. #define _CRT_SECURE_NO_WARNINGS // 최근에 몇몇 IDE에서 scanf를 쓰면 에러가 나더군요... 그곳에 대한 대응방안입니다. #include int main(void) { int a, b; int result; scanf("%d %d", &a, &b); // a와 b를 차례로 입력받음 result = a - b; //result에 a + b의 값을 대입 printf("%d\n", result); //result 값 출력 return 0; //프로그램 종료 } 사용방법 입..
C언어 두 정수 입력 후 더하여 출력하기 읽어주셔서 감사합니다. 오늘은 간단하게 두 정수를 입력받은 뒤, 두 수를 더하여 출력하는 방법에 대해 알아보겠습니다. 이건 제가 학교 동아리에서 C언어 입문자들 가르칠때 냈던 숙젠데, 다른 분들보 필요할때 소스 참고하지라고 이곳에 얼립니다. 코드 보통 이 문제를 푸는 단계가 scanf바로 배우고 나서인데요,간단합니다. 배우셨던 printf, scanf정의를 떠올리시며 코드를 보면 금방 이해하실 수 있을 겁니다. #define _CRT_SECURE_NO_WARNINGS // 최근에 몇몇 IDE에서 scanf를 쓰면 에러가 나더군요... 그곳에 대한 대응방안입니다. #include int main(void) { int a, b; int result; printf("input two numbers : "); ..
수학 수上 中 복소수의 곱셈과 회전의 관계에 대해 이번에는 따로 조사한 내용인 복소수의 곱셈과 회전에 대해 다루어보았습니다. 개인적으로 테플러 급수? 가 가장 흥미롭더군요. 복소수의 곱과 회전의 관게 말고도 i^i이 실수란것, e^ipi+1=0가 여기서 증명이 되더군요. 아는 분들은 아시겠지만, 글에 드러나는 각도는 모두 수1에 나오는 라디안으로 표기한 것이며, 기존에 여러분이 아시던 각도에 pi/180을 곱해야 합니다. pdf로 변환한 파일입니다.
C언어 배열의 순서 바꿔서 출력하기 (with source) 읽어주셔서 감사합니다. 오늘은 배열을 입력받은 뒤, 입력받은 배열을 거꾸로 출력하는 방법을 알아보겠습니다. 이러한 프로그램을 구현하는 방법은 상당히 여러개가 존재하는데, 오늘은 대표적인 두 가지 방법으로 구현할 예정입니다. 코드1 이 코드는 배열의 순서 자체를 바꾸는 코드입니다. 2번째로 나올 코드보다 조금 복잡한 코드이죠. 추가적으로 이 코드는 n이 100초과면 제대로 작동하지 않는데, 만약 n이 100 이상일때로 작동하는 코드를 원한다면, 아래 접은 글을 펴보시면 적절한 코드가 나올 겁니다. 아니면 arr대괄호 안의 수를 자신이 원하는 만큼 늘려도 됩니다. 더보기 #define _CRT_SECURE_NO_WARNINGS #include #include int main(void) { int n, c; ..
과학 신소재 中 탄소 신소재(graphene, CNT) 과학 발표에 사용한 PPT 자료입니다. 이 발표는 굉장히 공을 들였는데, 별과는 달리 한번 발표를 해보았기 때문에, 전체적인 발표 시간과 느낌을 알 수 있어 준비를 어떻게 해야할지 알 수 있었기 때문이고, 이 분야에 약간의 관심이 있었기 때문입니다. (막말로 말하자면 별의 진화 과정은 최소 십분정도 시간이 안나오면 그냥 상식설명에 가깝죠;;) 마찬가지로 PPT에 글씨를 쓰는 것을 굉장히 싫어하기 떄문에 PPT에는 순수 그림만을 넣고 그림에 따라 설명을 애드립으로 채워넣는 식으로 진행했습니다. ( 근데 물론 PPT에 글씨가 쓰이는 것이 중요한 곳도 있긴 합니다 오해하지 마시길. 예) 입시 설명회 PPT ) 발표 시간이 3분 정도 되기 때문에 슬라이드는 4장정도 준비를 했구요 PPT 레이아웃을 조작할때는, ..
수학 수上 중간고사 관련 새로 알아낸 정리, 계산법 이건은 제 자체적으로 개발한 수上에 등장하는 연산방법의 고안 입니다. 물론 요즘 왼만한 수학 원리는 다 이름이 있으니 이것도 정해진 이름이 있겠지만 이것을 제가 만들었다는 점을 알아주셨으면 합니다. 개인적으로 제일 마지막 부분이 상당히 인상깊더군요 pdf변환한 것입니다.