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