Develop & CS

Develop & CS/Algorithm & Data Structure

[C 언어] 유클리드 호제법 증명과 재귀함수 구현

유클리드 호제법에 관해서 한 번 글을 썼어야 하는데 이제야 써 보네요. 유클리드 호제법은 최대공약수(GCD : Greatest Common Factor)을 구하는 알고리즘입니다. 여담으로 최소공배수는 (두 수의 곱/gcd)를 하면 되기 때문에, 따로 구할 필요가 없고 세 수의 최대공약수를 구한다 해도 gcd(gcd(a,b),c)를 하면 되므로 두 수의 최대공약수를 구하는 알고리즘에 대해서만 알아도 충분할 겁니다. 우선 위의 사진에서 최대공약수를 구하는 알고리즘을 이해할 수 있고, 이는 단순히 r = a%b 에 대해서 gcd(a,b) = gcd(b,r)임을 보이면 됩니다. 증명은 위와 같습니다. 그래서 gcd함수 부분을 코드로 구현하면 int gcd(int a, int b) { if(b == 0) { re..

Develop & CS/Algorithm & Data Structure

[C] 에라토스테네스의 체, 소수 구하기

우리에게 익숙한.. 중학교 1학년 때 배우는 에라토스테네스의 체 이 전에(과제할 때) 반복문을 돌려서 나머지가 0인지를 판별하는 식으로 소수를 판별했는데, https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 이번 백준 문제를 풀고 그 방식이 너무나도 느리다는걸 깨달았습니다. 그래서 나온 결론은 에라토스테네스의 체를 이용하는 방법입니다. 숫자 배열로 공간을 많이 먹기는 해도 속도는 훨 빠르더군요. #include int main(void) { int n, m; int i, j; i..

Develop & CS/Algorithm & Data Structure

[C 언어] 두 번째로 큰(작은) 수를 구하기

서론1등만 기억하는 세상. 학교에서 주는 문제를 풀다가 두 번째로 작은 숫자를 찾아야 했습니다. (사실 문자지만 문자나 숫자나~) 보통은 가장 큰 숫자, 가장 작은 숫자를 찾지만 두 번째라고 하니 조금 당황스러웠습니다. 본론제가 작성한 코드는 이렇습니다. 어 그러니까, char을 input해서 그 값이 대문자일 때까지 받고 종료되면 알파벳 순서대로 했을 때 가장 먼저와, 그 다음 수를 출력한다고 해봅시다. 그러면, 제가 작성한 코드는 다음과 같습니다. char input; char first_char = 124, second_char = 124; while (1) { scanf("%c",&input); if(input >= 'A' && input input) { second_char = first_cha..

Develop & CS/R

R 언어 다운로드

https://www.r-project.org/ R: The R Project for Statistical Computing www.r-project.org R 언어를 다운로드 하기 위해서 사이트에 접속 CRAN으로 들어간다 사이트에서 Korea를 찾는다 첫 번째는 부경?대학교, 두 번째는 영남대 세번째는 서울대, 네번째는 윾니스트 절대 내가 떨어져서 그런건 아니지만 어쨌든 UNIST를 싫어하기 때문에 서울대를 선택해서 진행했다. 운영체제에 맞게 (윈도우를) 선택한다 처음 R을 설치하기 때문에 base를 선택 다운로드를 누르고 실행해서 진행한다. 그냥 다 '다음' 누르고 넘어가면 설치된다.

Develop & CS/Algorithm & Data Structure

퀵 정렬(Quick Sort) C 언어

요즘 다시 C 언어를 공부하는 중입니다. 표준을 지키려고 KNK의 C Programming: A Modern Approach, 2nd ed. 을 보고 있는데 역시 굉장히 좋은 책입니다. 프로그래밍 언어를 공부하는 방법으로 저는 사소한 것들도 계속 따라해보려고 하는 편입니다. 이전에 자료구조를 배우며, 정렬을 정리해본 적은 있으나 기억이 안나는 관계로.. 이 책에 나왔던 퀵 정렬을 정리해보고자 합니다. https://wikidocs.net/book/2494 C 프로그래밍: 현대적 접근 K.N.King의 유명한 책 C Programming: A Modern Approach, 2nd ed.를 한국어로 번역한 책입니다. 모든 저작권은 K.N.King에게 ... wikidocs.net Quick Sort 퀵 정렬..

Develop & CS/Baekjoon

[Baekjoon] [2775 : 부녀회장이 될테야]

저는 원래 간단한 문제도 복잡하게 푸는걸 잘 합니다. 굉장히 한심한 편이죠. 그래서 그런지.. 문제를 풀 때마다 간단한 문제도 이런 식으로 풀곤 합니다. baekjoon 기본 수학 1 문제집에 있는 문제여서 수학적인 개념으로 풀어보고자 했습니다. 메모장에 숫자를 적어나갔습니다. 층 별 계수 1 5 15 35 1 4 10 20 1 3 6 10 1 2 3 4 1 1 1 1 층 : 호수에 따른 숫자 4 : 1 (1*4 + 2*1) (1*10 + 2*4 + 3*1) (1*20 + 2*10 + 3*4 + 4*1) 3 : 1 (1*3 + 2*1) (1*6 + 2*3 + 3*1) (1*10 + 2*6 + 3*3 + 4*1) 2 : 1 (1*2 + 2*1) (1*3 + 2*2 + 3*1) (1*4 + 2*3 + 3*2..

Develop & CS/Baekjoon

[Baekjoon] [1152 : 단어의 개수] 버퍼와 scanf, gets, fgets

아무래도 배우는게 있으면 그때 그때 글을 써야할 거 같습니다. 좀 있다가 쓰려니까 글 쓰기가 어렵네요. https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 이번에 푼 문제는 1152번 단어의 개수 문제이다. 문제의 풀이 문제를 보고 예시를 보면 알겠지만, 우선 띄어쓰기 ' '의 갯수를 세고 거기에 +1 한 값이 단어의 개수가 된다. 앞에 띄어쓰기가 있다면 -1, 또한 뒤에도 띄어쓰기가 있다면 -1 하면 되겠다고 생각했다. #include #i..

Develop & CS/Baekjoon

[Baekjoon] [10951 : A+B - 4] EOF와 scanf의 함숫값

입력이 끝날 때까지 A+B를 출력하는 문제. EOF에 대해 알아 보세요. 언제 끝날지 모름 문제의 정답을 공개하기 전에 내가 생각했던 과정을 적어본다. 문제의 문제는 종료 조건을 모른다는 것이다. EOF 찾아보라는 설명을 못 보고 입력의 예외처리를 위해서 C언어에서 try except문과 비슷한 try throw catch문을 찾아보았다.. 사실 다 작성하고 ctrl + c를 통해 강제종료 하면서 테스트 해봤는데. 여기서 종료하는건 ctrl + c가 아니라 ctrl + z였다. 암튼 try throw catch문으로 풀기는 까다로웠다. 그리고 EOF와 scanf함숫값에 대해 알았다. EOF와 scanf의 함숫값 사실 EOF라는 개념을 예상하긴 했다. ASCII 코드를 보면 나와있는 1번부터 뭐시기~ 그런..

그믐​
'Develop & CS' 카테고리의 글 목록 (3 Page)