Program MADE IN BRAIN<br />알고리즘의 ‘느낌’ 알아보기<br />24th이시야<br />Hanyang University, EECS, JARAM<br />
프로그래밍이란?<br />Hanyang University, EECS, JARAM<br />
1%의 영감<br />Hanyang University, EECS, JARAM<br />
그래서 프로그래밍이란?<br />Hanyang University, EECS, JARAM<br />
프로그램 == 생각들의 집합<br />프로그램 == 알고리즘의 집합<br />Hanyang University, EECS, JARAM<br />
알고리즘<br />문제를 해결하기 위한 절차나 방법<br />Hanyang University, EECS, JARAM<br />
알고리즘의 연구<br />고안<br />검증 <br />분석<br />테스트<br />Hanyang University, EECS, JARAM<br />
알고리즘의 분석 <br />정확성<br />작업량<br />기억 장소 사용량<br />단순성<br />최적성<br />Hanyang University, EECS, JARAM<br />
알고리즘의 속도<br />O(1)<br />O(log N)<br />O(N)<br />O(N log N)<br />O(N2)<br />O(N3)<br />O(2n)<br />Hanyang University, EECS,...
알고리즘의 효과<br />한 문제를 푸는 여러 가지 방법의 예시<br />Hanyang University, EECS, JARAM<br />
1부터 N까지의 합<br />?<br />Hanyang University, EECS, JARAM<br />
1~N의 합<br />반복문  이용<br />수식 이용<br />sumOneToN(int n){<br />int result = 0;<br />	for (inti =1 ; i<=n ; i++)<br />		result ...
GCD 구하기<br />정의 이용<br />유클리드 알고리즘<br />intgreatestCommonDivisor(int num1, int num2){<br />int result = 1;<br />intminGCM =...
GCD 구하기<br />유클리드 알고리즘<br />개선된 유클리드 알고리즘<br />intgreatestCommonDivisor (int num1, int num2){<br />int  temp;<br />	while(...
ICPC acm with Algorithm<br />Hanyang University, EECS, JARAM<br />
문제 1.코인<br />10원이 K개, 50원이 L개, 100원이 M개 500원이 N개 있다. 총 금액을 구하시오<br />입력<br />한 줄에 정수인 K, L, M, N을 순서대로 입력한다. (0 <= K, L, M...
문제 2. 소수 판별 하기<br />1보다 큰 정수 P가 1과 P 자신 이외의양의 <br />약수를 가지지 않을 때의 P를 소수라고 부른다.<br />이를테면 2, 3, 5, 7, 11, 13, 17, 19, 23 등은...
문제 2. 소수 판별 하기<br />Ex) 3 -> YES<br />입력<br />N은 1 <= N <= 10000000 사이의 범위를 가진다.<br />출력<br />N이 소수인 경우에는 Yes를 출력하고 N이 소수가...
소수 판별<br />정의에 의한 판별<br />계량 된 방법<br />Boolean isPrime(int n){<br />	for(inti = 2;i<=n;i++){<br />		if(n%i == 0)<br />			r...
문제 3. 수 뒤집기<br />뒤집어서 합한 뒤 대칭이 되는 수인지 아닌지 판단<br />Ex) 124 -> 421 124+421 = 545<br />입력<br />Testcase T는 1<=T<=10<br />정수N은...
문제 4. Molar mass<br />'c' carbon , 'h' hydrogen , 'o' oxygen,and 'n' nitrogen without parntheses.the standard atomic weigh...
알고리즘 ++<br />Hanyang University, EECS, JARAM<br />
자료구조<br />배열<br />스택<br />힙<br />트리<br />그래프<br />Hanyang University, EECS, JARAM<br />
정렬<br />거품 정렬<br />선택 정렬<br />삽입 정렬<br />쉘 정렬<br />퀵 정렬<br />병합 정렬<br />힙 정렬<br />기수 정렬<br />Hanyang University, EECS, JAR...
알고리즘 속도를 위한 기법<br />상태저장<br />자료구조 보완 <br />나누어 풀기<br />점화식과 자료저장<br />수식 이용<br />Hanyang University, EECS, JARAM<br />
참고 자료<br />Wiki Pedia<br />C로 배우는 알고리즘<br />생각하는 프로그래밍<br />Hanyang University, EECS, JARAM<br />
?<br />Q&A<br />Hanyang University, EECS, JARAM<br />
Upcoming SlideShare
Loading in …5
×

Program made in brain

769 views
607 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
769
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Program made in brain

  1. 1. Program MADE IN BRAIN<br />알고리즘의 ‘느낌’ 알아보기<br />24th이시야<br />Hanyang University, EECS, JARAM<br />
  2. 2. 프로그래밍이란?<br />Hanyang University, EECS, JARAM<br />
  3. 3. 1%의 영감<br />Hanyang University, EECS, JARAM<br />
  4. 4. 그래서 프로그래밍이란?<br />Hanyang University, EECS, JARAM<br />
  5. 5. 프로그램 == 생각들의 집합<br />프로그램 == 알고리즘의 집합<br />Hanyang University, EECS, JARAM<br />
  6. 6. 알고리즘<br />문제를 해결하기 위한 절차나 방법<br />Hanyang University, EECS, JARAM<br />
  7. 7. 알고리즘의 연구<br />고안<br />검증 <br />분석<br />테스트<br />Hanyang University, EECS, JARAM<br />
  8. 8. 알고리즘의 분석 <br />정확성<br />작업량<br />기억 장소 사용량<br />단순성<br />최적성<br />Hanyang University, EECS, JARAM<br />
  9. 9. 알고리즘의 속도<br />O(1)<br />O(log N)<br />O(N)<br />O(N log N)<br />O(N2)<br />O(N3)<br />O(2n)<br />Hanyang University, EECS, JARAM<br />
  10. 10. 알고리즘의 효과<br />한 문제를 푸는 여러 가지 방법의 예시<br />Hanyang University, EECS, JARAM<br />
  11. 11. 1부터 N까지의 합<br />?<br />Hanyang University, EECS, JARAM<br />
  12. 12. 1~N의 합<br />반복문 이용<br />수식 이용<br />sumOneToN(int n){<br />int result = 0;<br /> for (inti =1 ; i<=n ; i++)<br /> result +=I;<br /> return result;<br />}<br />sumOneToN(int n){<br /> return n * (n + 1) / 2;<br />}<br />Hanyang University, EECS, JARAM<br />
  13. 13. GCD 구하기<br />정의 이용<br />유클리드 알고리즘<br />intgreatestCommonDivisor(int num1, int num2){<br />int result = 1;<br />intminGCM = 1;<br /> int bignum = (num1<=num2)?num2:num1;<br /> for(inti= bignum;i>minGCM;i--){<br /> if(num1%i==0 && num2%i==0){<br /> result=i;<br /> return result;<br /> }<br /> }<br /> return minGCM;<br />}<br />intgreatestCommonDivisor (int num1, int num2){<br />int temp;<br /> while(num1 != 0){<br /> if(num1<num2){<br /> temp = num1;<br /> num1=num2;<br /> num2=temp;<br /> }<br /> num1 = num1-num2;<br /> }<br /> return num2;<br />}<br />Hanyang University, EECS, JARAM<br />
  14. 14. GCD 구하기<br />유클리드 알고리즘<br />개선된 유클리드 알고리즘<br />intgreatestCommonDivisor (int num1, int num2){<br />int temp;<br /> while(num1 != 0){<br /> if(num1<num2){<br /> temp = num1;<br /> num1=num2;<br /> num2=temp;<br /> }<br /> num1 = num1-num2;<br /> }<br /> return num2;<br />}<br />intgreatestCommonDivisor (int num1, int num2){<br />int temp;<br /> while(num2 != 0){<br /> temp = num1 % num2<br /> num1=num2;<br /> num2=temp;<br /> }<br /> return num2;<br />}<br />Hanyang University, EECS, JARAM<br />
  15. 15. ICPC acm with Algorithm<br />Hanyang University, EECS, JARAM<br />
  16. 16. 문제 1.코인<br />10원이 K개, 50원이 L개, 100원이 M개 500원이 N개 있다. 총 금액을 구하시오<br />입력<br />한 줄에 정수인 K, L, M, N을 순서대로 입력한다. (0 <= K, L, M, N <= 100)<br />출력<br />결과값은 총 금액을 계산한 값이다.<br />Hanyang University, EECS, JARAM<br />
  17. 17. 문제 2. 소수 판별 하기<br />1보다 큰 정수 P가 1과 P 자신 이외의양의 <br />약수를 가지지 않을 때의 P를 소수라고 부른다.<br />이를테면 2, 3, 5, 7, 11, 13, 17, 19, 23 등은<br />모두 소수이다.<br />4, 6, 16 등과 같이 소수가 아니면서 2 이상인<br />자연수를 합성수라고 정의하며, 1은 소수도<br />아니고 합성수도 아닌 수이다.<br />주어진 자연수 N의 소수여부를 판정해라.<br />Hanyang University, EECS, JARAM<br />
  18. 18. 문제 2. 소수 판별 하기<br />Ex) 3 -> YES<br />입력<br />N은 1 <= N <= 10000000 사이의 범위를 가진다.<br />출력<br />N이 소수인 경우에는 Yes를 출력하고 N이 소수가 아닌 경우에는 No를 출력한다.<br />Hanyang University, EECS, JARAM<br />
  19. 19. 소수 판별<br />정의에 의한 판별<br />계량 된 방법<br />Boolean isPrime(int n){<br /> for(inti = 2;i<=n;i++){<br /> if(n%i == 0)<br /> return false;<br /> }<br /> return true;<br />}<br />Boolean isPrime(int n){<br />Int end = (int)sqrt(n);<br /> for(inti = 2;i<=end;i++){<br /> if(n%i == 0)<br /> return false;<br /> }<br /> return true;<br />}<br />Hanyang University, EECS, JARAM<br />
  20. 20. 문제 3. 수 뒤집기<br />뒤집어서 합한 뒤 대칭이 되는 수인지 아닌지 판단<br />Ex) 124 -> 421 124+421 = 545<br />입력<br />Testcase T는 1<=T<=10<br />정수N은 10<= N<=100000<br />출력<br />대칭이면 YES<br />아니면 NO<br />Hanyang University, EECS, JARAM<br />
  21. 21. 문제 4. Molar mass<br />'c' carbon , 'h' hydrogen , 'o' oxygen,and 'n' nitrogen without parntheses.the standard atomic weights for 'c' 'h' 'o' 'n‘<br />Input<br />Ex) C6H5OH<br />output<br />The line should contain the molar mass of the given molecular formula.<br />Ex) 94.108<br />Hanyang University, EECS, JARAM<br />
  22. 22. 알고리즘 ++<br />Hanyang University, EECS, JARAM<br />
  23. 23. 자료구조<br />배열<br />스택<br />힙<br />트리<br />그래프<br />Hanyang University, EECS, JARAM<br />
  24. 24. 정렬<br />거품 정렬<br />선택 정렬<br />삽입 정렬<br />쉘 정렬<br />퀵 정렬<br />병합 정렬<br />힙 정렬<br />기수 정렬<br />Hanyang University, EECS, JARAM<br />
  25. 25. 알고리즘 속도를 위한 기법<br />상태저장<br />자료구조 보완 <br />나누어 풀기<br />점화식과 자료저장<br />수식 이용<br />Hanyang University, EECS, JARAM<br />
  26. 26. 참고 자료<br />Wiki Pedia<br />C로 배우는 알고리즘<br />생각하는 프로그래밍<br />Hanyang University, EECS, JARAM<br />
  27. 27. ?<br />Q&A<br />Hanyang University, EECS, JARAM<br />

×