Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Program made in brain

849 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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 />

×