project#3How fast can we sort?                        조 : D3
조장 : 2008 고충욱              조원 : 2009 김시백                  2011 안영준                  2011 정진아                  2011 최보은    ...
5. 문제점6. 해결소스7. 회의록1. 프로젝트 설명과제 1다음을 정렬하시오○ 10~ 29 까지 두 자리 정수가 적힌 20 장의 카드가 있다고 하자. 카드를무작위로섞었다. 다음 방법을 이용하여 정렬하고 설명에 답하시오,...
- 전체 카드를 몇 번 보아야 하는가?최소 : 20 번 ⇒ 모든 경우에서 찾는 수가 가장 먼저인 경우최대 : 20!번 ⇒ 모든 경우에서 찾는 수가 가장 마지막인 경우- 최악의 경우는 어떻게 초기화 되었을 경우인가?⇒ 가...
1 인 뭉치를 집어서 다시 첫 번째 수를 보고 두 뭉치로 나누어 앞의 뭉치위에 뒤집어놓는다. 모든 카드에 대해 반복한다.- 카드의 비교 횟수는 얼마인가?최악의 경우 :20 + 55 + 10 + 120:10 개의 뭉치(0...
등을 고려하여 여러 조건 하에서 선택이나 분포를 counting 하는 것은 중요한 문제이며 ,지금부터 차례대로 알아보기로 합시다.예제 1. 개인사물함에 두 자로 된 명찰을 붙여서 구분 하려고 한다. 한글 `가, 나, 다...
15 x 14 x 13 x 12 (가지)예제 3. 빨간 주사위 R 과 파란 주사위 B 를 동시에 던질 때 나올 수 있는 눈의 경우의 수를구하여 보시오.또, 동일한 두 주사위를 던질 때 나올 수 있는 눈의 경우의 수도 구...
(1) 중복을 허락하는가?                            (2) 순서를 고려하는가?를 고려하여 경우의 수를 계산하여야 한다.S    가   공집합이   아닌   집합일   때,   중복을    허용하고...
이 때, 4 byte (32bit) code 의 경우의 수를 알아보면 중복순열의 수에 의한 경우의 수는 모두                이다. 이 숫자는 앞에서 학습한 Hanoi Tower 문제에서 나온 숫자에 버금가는...
가 된다. ( 공학수학이나해석학 책을 참조하시오.)예제 4. 12 명의 회원을 가진 모임에서 서로 다른 직함을 갖는 4 명을 선출하는 방법의 경우의수는 ?풀이.예제 5. 알파벳 A, B, C, D 가 각각 쓰여진 네 장...
예제 1. 12 명의 모임에서 4 명을 임의로 선출 하는 방법의 수는?풀이.예제 2. OCU 의 교양과정에는 5 개의 과학 교과목과 4 개의 역사 교과목이 있다. 은지는 이번학기에 2 개의과학 교과목과 2 개의 역사 교...
풀이.     영어 단어 MISSISSIPI 는                                M 이 1개                                 I 가 4개                   ...
따라서, 구하는 전체의 가지 수는                                                 이다.                       위의     정리   2     에서    가능한  ...
풀이                              . 먼저 중복 조합의 수는 순서대로 나열하는 수는중복순열이므로                  원순열과 기타 배열의 방법모든 배열의 경우의 수는 모든 기본적인 수 ...
4 × 48 = 192 48 × 4 = 192따라서 구하는 전체 경우의 수는 모두 396 가지(3) (1)에 의하여 396 - 12 = 384 가지예제 3. 3 명의 남자와 6 명의 여자가 한 줄로 정렬한다. 이 때, ...
팀의   팀장을   정하고,   과제에   대해   토의   후   팀원의12. 4. 11            임무분담을 정함.            k-combination 에 대한 과제 2 의 알고리즘을 구하고,12....
정진아              알고리즘 구성 및 자료조사    최보은              알고리즘 구성 및 자료조사4. 초 안(1) 알고리즘 및 소스1.문자를 받는다.(숫자를 받을 때마다 n 갯수를 늘리고 마지막 괄...
char ch[20];char v;int cnt;int arc;int b;int m;int n;for(;;){scanf("%c",&v);if(v=={ && m==0){m++;}else if(ch[n-1]!=, && v=...
b=arc+1;if(n-1==19){arc=20;}scanf("%d",&cnt);/*1. 처음 세 문자를 출력한다.2. 다음에 마지막 한문자를 뒤로 옮겨서 재 출력한다.3. 마지막 문자가 마지막에 닿았을때 그 앞순서문자...
int sun[20];int cnt;int arc;int in[20];int x,y,z;int m=0;int n=1;int l;int a=0,b,c;for(y=1;y<=20;y++){sun[y]=y;}for(;;){sc...
ch[n]=v;n++;}}arc=n-1;b=arc+1;if(n-1==19){arc=20;}scanf("%d",&cnt);for(;;){for(x=1;x<=cnt;x++){printf("%c",ch[sun[x]]);}b=...
if(sun[z]!=b){break;}else{a++;b--;}if(sun[1]==arc-cnt+2){break;}}if(sun[1]==arc-cnt+2){break;}printf(", ");}scanf("%d",n);...
1. 문제 파악        2. 업무 분담회의안건        3. 앞으로의 계획 설정        4. 방법 1, 2, 3 논의                            내 용                  ...
1. 자료조사 토의       2. 알고리즘 문제점 토의회의안건       3. 방법 1, 2, 3 논의       4. 앞으로의 일정 계획                             내 용            ...
<3 차>회의일시 2012 년 04 월 18 일       조     D3   작성자   11 최보은 참석자    08 고충욱 09 김시백 11 안영준 11 정진아        1. 용어 공식 정리        2. 방...
- 중복조합(서로 다른 n 개에서 중복을 허용하여 r 개를택하는 조합)공식: nHr = n+r-1Cr 임을 유도 및 토의- 방법 1, 2, 3 정리: 보고서에 넣는 양식으로 마지막 최종 정리- 최종 소스 이해: 전 회의...
Upcoming SlideShare
Loading in …5
×

이산치수학 Project3

819 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
819
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

이산치수학 Project3

  1. 1. project#3How fast can we sort? 조 : D3
  2. 2. 조장 : 2008 고충욱 조원 : 2009 김시백 2011 안영준 2011 정진아 2011 최보은 차 례1. 프로젝트 설명2. 일 정3. 업무분담4. 초 안- 알고리즘 및 소스
  3. 3. 5. 문제점6. 해결소스7. 회의록1. 프로젝트 설명과제 1다음을 정렬하시오○ 10~ 29 까지 두 자리 정수가 적힌 20 장의 카드가 있다고 하자. 카드를무작위로섞었다. 다음 방법을 이용하여 정렬하고 설명에 답하시오, 각 방법을사용하고 난후에는 다시 무작위로 섞었다고 하자.방법 1⦿ 가장 큰 수가 나올 때까지 찾아서 이 카드를 테이블 위에 앞면이 위로오도록 놓는다.처음부터 다시 그 다음 큰 수를 찾아서 그 카드 위에 놓는다. 이 과정을모든 카드를찾을 때까지 반복한다. 정렬되었는가?
  4. 4. - 전체 카드를 몇 번 보아야 하는가?최소 : 20 번 ⇒ 모든 경우에서 찾는 수가 가장 먼저인 경우최대 : 20!번 ⇒ 모든 경우에서 찾는 수가 가장 마지막인 경우- 최악의 경우는 어떻게 초기화 되었을 경우인가?⇒ 가장 큰수가 마지막으로 초기화 되는 경우- 최선의 경우는 어떻게 초기화 되었을 경우인가?⇒ 가장 큰수가 처음으로 초기화 되는 경우- 시간 복잡도는 얼마인가?⇒ O(n!) = n!, Ω(n) = n방법 2⦿ 카드를 두 뭉치로 나눈다. 하나는 첫 수가 1 인 것이고 다른 하나는 첫수가 2 인 것이다.각 뭉치를 방법 1 을 사용하여 두 번째 수를 정렬한다. 첫 번째 뭉치를 두번째 뭉치위에 놓는다. 정렬되었는가?- 카드의 비교 수는 얼마인가? 20 + 10! + 10! + 120:두 뭉치로 나눈다, 10!:방법 1 을 정렬, 1:첫 수가 1 인지 2 인지 뭉치비교방법 3⦿ 카드의 두 번째 수를 이용하여 10 개의 뭉치(0~9)로 나눈다. 이제 두번째 수가 0 인뭉치를 집어서 첫 번째 수를 보고 두 뭉치로 나누고 뒤집어 놓는다. 두번째 수가
  5. 5. 1 인 뭉치를 집어서 다시 첫 번째 수를 보고 두 뭉치로 나누어 앞의 뭉치위에 뒤집어놓는다. 모든 카드에 대해 반복한다.- 카드의 비교 횟수는 얼마인가?최악의 경우 :20 + 55 + 10 + 120:10 개의 뭉치(0~9)로 나눈다, 55:최악의 경우로 두 번째 수가 가장 작은수를 마지막에 집는다, 10:한 뭉치를 첫 번째 수로 비교, 1:첫 수가 1 인지2 인지 뭉치비교최선의 경우 :20 + 10 + 10 + 120:10 개의 뭉치(0~9)로 나눈다, 55:최악의 경우로 두 번째 수가 가장 작은수를 집는다. 10:최선의 경우로 두 번째 수가 가장 작은 수를 처음 집는다,1:첫 수가 1 인지 2 인지 뭉치비교 두 가지 세기(Counting)의 방법문제. 원형의 탁자에 5 쌍의 부부가 앉으려고 한다. 이 때,남자와 여자는 교대로 앉아야 하고,부부는 옆에 나란히 앉을 수 없다고 한다. 그러면 앉을 수 있는 방법은 모두 몇 가지나 되는지알아보시오.일상 생활 중에서 우리는 위의 문제와 같은 많은 상황을 만나게 되며, 우리는 이와 같은 문제를해결하기 위하여 여러 방법의 세기(counting)를 잘 하여야 한다.일반적으로 세는 방법에 있어서(1) 순서(order)를 고려하던지 또는 고려하지 않던지;(2) 반복(repetition)을 허락하던지 또는 허락하지 않던지
  6. 6. 등을 고려하여 여러 조건 하에서 선택이나 분포를 counting 하는 것은 중요한 문제이며 ,지금부터 차례대로 알아보기로 합시다.예제 1. 개인사물함에 두 자로 된 명찰을 붙여서 구분 하려고 한다. 한글 `가, 나, 다, ... , 파, 하 `의 14 자중에서 한 글자와 수자 `0, 1, 2, ... , 8, 9`의 열 개중 한 수자를 사용하려고 한다. 이 때 사물함을구별할 수 있는 명찰을 몇 개 만들 수 있는지 알아보시오.풀이. 사물함의 명찰의 모양은 한글 : 수자 (예를 들면, 가 3 ) 수자 : 한글 (예를 들면, 4 라 )의 경우가 가능하므로,한글 : 수자 의 경우는 14 x 10 = 140 (가지)수자 : 한글 의 경우는 10 x 14 = 140 (가지)따라서, 구별할 수 있는 사물함의 명찰의 개수는 모두 140 + 140 = 280 (개) 이다.위 예제 1 에서 알 수 있듯이, k 개의 가능성이 있는 일이 독립적으로 시행될 수 있고, 또 각각의경우의 수가 m1, m2, ..., mk 일 때, 가능한 전체의 경우의 수는 모두 이다. 이것을 합의 법칙 (the addition principle)이라고 한다.각각의 경우의 수가 m1, m2, ..., mi 인 연속된 일을 시행할 때, 가능한 전체의 경우의 수는 모두 이다. 이것을 곱의 법칙 (the multiplication principle)이라고 한다. 이 두 가지 법칙은 모든 경우의 세기 문제에 있어서 가장 기본적인 법칙이다.예제 2. 15 명의 회원을 가진 어떤 모임이 있다. 이 때, 회장, 부회장, 총무, 감사를 각각선출하려고 한다.가능한 경우의 수는 모두 몇 가지인가 ?풀이. 회장, 부회장, 총무, 감사를 연속하여 선출하여야 하므로, 곱의법칙에 의하여
  7. 7. 15 x 14 x 13 x 12 (가지)예제 3. 빨간 주사위 R 과 파란 주사위 B 를 동시에 던질 때 나올 수 있는 눈의 경우의 수를구하여 보시오.또, 동일한 두 주사위를 던질 때 나올 수 있는 눈의 경우의 수도 구하여 보시오.풀이.(1) 빨간 주사위 R 의 눈이 나올 수 있는 경우의 수는 6 가지 파란 주사위 B 의 눈이 나올 수 있는 경우의 수는 6 가지따라서 곱의 법칙에 의하여 구하는 경우의 수는 모두 6 x 6 = 36 (가지)이를 구체적으로 구하여 보면, 빨간 주사위 R 과 파란 주사위 B 의 나온 각각 눈을 r, b 라 하고순서쌍 (r, b)로 표시하면 (1,1), (1,2), (1,3), (1,4), (1,5), (1,6) (2,1), (2,2), (2,3), (2,4), (2,5), (2,6) ... (6,1), (6,2), (6,3), (6,4), (6,5), (6,6)(2) 동일한 두 주사위를 던지는 경우에 위의 경우에서의 (1,2)와 (2,1)은 구별할 수가 없고, 같은모양으로 이해되므로 가능한 전체의 경우의 수는 모두 1 + 2 + 3 + 4 + 5 + 6 = 21 (가지)위 예제는 우리가 곧 학습할 중복순열과 중복조합의 전형적인 예로서,경우 (1)은 중복순열 이고,경우 (2)는 중복조합 이다. 순서가 있는 선택의 문제 (Ordered choices)m 개의 대상으로부터 r 개를 선택할 경우에,
  8. 8. (1) 중복을 허락하는가? (2) 순서를 고려하는가?를 고려하여 경우의 수를 계산하여야 한다.S 가 공집합이 아닌 집합일 때, 중복을 허용하고 순서를 고려하여 r 개를 선택한부분집합을 S 의 r 표본(r-sample)이라 한다.S 의 원소의 개수를 n 이라 하고, r 표본의 개수를 구하여 봅시다. 먼저 순서를 고려하므로 r 개의 방을 먼저 순서대로 나열하고 □ □ □ … □각 방에는 S 의 원소 n 개 중에서 임의로 한 개를 선택할 수 있으므로 곱의 법칙에 의하여 n×n×…×n= nr 이며, 이것을 중복순열이라고 부른다정리 1. S 의 원소의 개수를 n 이라 하면, r 표본의 개수는 n×n×…×n= nr 이다.예제 1. 운동복에 0 부터 9 까지의 수자를 사용하여 두 자리 수자를 붙이려 한다. 그러면중복순열의 수이므로, 102= 100 가지의 운동복 번호를 붙일 수 있다. 즉, 00 부터 99 까지 모두100 가지이다.문제 2. 26 자의 영어 알파벳 중에서 5 자 사용하여 임의로 낱말 모양을 만들려고 한다. 가능한낱말은 모두 몇 가지인가?컴퓨터의 모든 코드는 모두 0 과 1 을 사용하여 표현된다.이것을 binary code 라고 한다. 0,1 중 한 개로 이루어진 정보를 1 bit 라 하고 8 bit 를 1byte 라고한다. 이때, 1byte code 의 가능한 경우의 수를 살펴보면 중복순열의 원리의 의하여 2 x2 x···x 2 =26 = 64 (가지) 가 가능하다.개인용 PC 는 정보처리 단위에 따라서 8 bit, 16 bit , 32 bit , 64 bit 등과 같이 한 번에 처리할 수있는 정보양으로 PC 를 구분하여 부르며, 요즘 Pentium Ⅱ processor 를 갖춘 PC 를 64 bit운영체제인 PC 라고부른다.
  9. 9. 이 때, 4 byte (32bit) code 의 경우의 수를 알아보면 중복순열의 수에 의한 경우의 수는 모두 이다. 이 숫자는 앞에서 학습한 Hanoi Tower 문제에서 나온 숫자에 버금가는 커다란 수이다.이제 반복이 허용되지 않고 선택의 수에 대하여 알아 보도록 합시다.집합 S 의 r-sample 중에서 원소가 모두 다른 것들을 우리는 r-순열 (r- permutation) 이라고부른다. 또, S 의 원소의 개수가 r 인 경우에 S 의 r-순열은 단순히 순열 (permutation) 이라고한다.정리 2. S 의 원소의 개수가 n 일 때, r-순열의 수는 이다.증명.r-순열은 모두 다른 원소를 r 개 골라서 순서대로 나열하는 방법의 수이므로, 곱의 법칙을사용하면 이다.기호의 약속(1) n = r 일 때 :(2) r = 0 일 때 : 0-순열은 의미가 없다. 그러나 계산의 편의를 위하여 모든 n 에 대하여 로 약속한다.실제로 n ! 은 Gamma 함수로 정의되는 수의 특수한 경우로 이해되는 수로서, p >0 인임의의 실수 일 때 함수는 다음과 같이 정의된다 : 그러면 모든 p >0 에 대하여 점화식가 성립하고, 이 때 특별히 p 가 자연수이면
  10. 10. 가 된다. ( 공학수학이나해석학 책을 참조하시오.)예제 4. 12 명의 회원을 가진 모임에서 서로 다른 직함을 갖는 4 명을 선출하는 방법의 경우의수는 ?풀이.예제 5. 알파벳 A, B, C, D 가 각각 쓰여진 네 장의 카드를 모두 사용하여 만들 수 있는 단어는모두 몇가지인가 알아보시오.풀이. 순서가 없는 선택의 문제 (Unordered choice)n 개의 원소를 갖는 집합 S 로 부터 r 개의 서로 다른 원소를 순서를 고려하지 않고 선택한집합을 S 의r-조합(r-combination)이라고 하고, r-조합의 수를 과 같이 표기한다.정리 1.증명. r-순열의 개수는 이고 r 개를 나열하는 방법의 수는 이다. 따라서
  11. 11. 예제 1. 12 명의 모임에서 4 명을 임의로 선출 하는 방법의 수는?풀이.예제 2. OCU 의 교양과정에는 5 개의 과학 교과목과 4 개의 역사 교과목이 있다. 은지는 이번학기에 2 개의과학 교과목과 2 개의 역사 교과목을 선택하려고 한다. 이 때 은지가 선택할 수 있는 과목의경우의 수는?풀이.예제 3. 7 개의 -(dash)와 5 개의 / (slash)를 한 줄에 나열하는 방법은 모두 몇 가지인가알아보시오.풀이. 우선 모두 12 개의 방이 나열되어 있다고 생각하고, 그 중 5 개를 순서에 관계없이 골라서그 방에 / 를 넣는다고 생각하면 된다. 따라서 구하는 경우의 수는 모두 이다.또 위의 문제의 풀이에서 7 개의 방을 골라서 - 를 넣어도 되므로 가 되며, 이 두 수는 같다. 즉,일반적으로, 우리는 조합수에 관한 항등식 을 얻을 수 있다.예제 4. 영어 단어 MISSISSIPI 의 모든 영어 철자를 사용하여 만들 수 있는 새로운 단어의개수를 구하여보시오.
  12. 12. 풀이. 영어 단어 MISSISSIPI 는 M 이 1개 I 가 4개 S 가 4개 P 가 2개이므로 모두 11 자이다. 그러면, 11 개의 방을 나열해 놓고, 먼저 S 를 넣는 방법은 다음에 M 을 넣는 방법은 S 를 넣는 방법은 P 를 넣는 방법은이다. 따라서 구하는 방법의 수는 곱의 법칙에 의하여이와 같은 중복되어 있는 것들에 관한 순열을 중복순열이라고 한다.일반적으로 다음의 정리가 성립한다.정리 2. 전체의 개수가 인 object 를 한 줄에 나열하는 방법의수는증명. 위의 예제와 같은 방법으로 생각한다. 즉, n 개의 방이 있을 때, 먼저 n1 개를 고르는 방법은 또 ( n-n1)개 가운데서 n2 개를 고르는 방법은또, 이와 같은 방법으로 우리가 구하는 전체 경우의 수는
  13. 13. 따라서, 구하는 전체의 가지 수는 이다. 위의 정리 2 에서 가능한 경우의 수를 라 쓰며,이를 다항계수(multinomial coeffcient) 라고 한다. 특히 k=2 인 경우 다항계수는 앞에서 학습한조합의 수 과 같다 . (왜냐하면, n = n1 + n2 이므로)원소의 개수가 n 인 집단으로부터 중복을 허용하여 r 개를 고르는 것을 r-선택 (r-selection)이라하고, 이를 중복조합이라고 한다. 이 때, r 은 n 보다 커도 무방하다. 또, r-선택 중에서 원소가모두 다른 것을 우리는 r-조합이라고 부른다.정리 3 . 원소의 개수가 n 인 r-선택의 수(중복조합)는 이다.증명. 집합 S 를 이라 두자.각각의 r-선택을 r 개의 - 와 (n-1) 개의 / 로 이루어진 수열로 대응 할 수 있다. 예를들면, 집합 S 가 일 때,가 5-선택이라면 이것은 -/--//--/ 와 같다고 생각할 수 있다. 또, s2, s2, s3 는 3-선택으로이것은 /-/--// 와 같다고 생각한다.따라서, 우리가 구하는 선택의 수는 정리 3 에 의하여 이다.예제 5. 알파벳 26 자를 중복을 허락하여 3 자를 골라서 나열하여 만들 수 있는 단어의 수는 몇개인가?
  14. 14. 풀이 . 먼저 중복 조합의 수는 순서대로 나열하는 수는중복순열이므로 원순열과 기타 배열의 방법모든 배열의 경우의 수는 모든 기본적인 수 법칙 , 즉 곱의 법칙과 합의 법칙에 의하여 구할 수있다.예제 1. 원판을 꼭 같은 넓이로 100 등분하여 수자 1 부터 100 까지 임의대로 쓰려고 한다. 이 때,가능한 모든 경우의 수는?풀이. 일렬로 나열하는 방법은 모두 100! 이다. 그런데 수자가 원형으로 나열되어 있으므로, 한수자를 임의로 고정시키고 나머지는 일렬로 나열 한다고 생각하면 된다 . 따라서 구하는 경우의수는 (100-1)! 이다.위의 예제와 같은 순열을 원순열(circular arrangement)이라고 한다.어떤 성질을 갖는 object 의 counting 은 전체의 경우에서 그 성질을 object 의 수를 빼어서계산할 수 있다. 이와 같은 방법을 여사건을 이용하여 counting 하는 방법 이라고 한다.예제 2. 48 장의 트럼프 카드가 있다. 두 장의 카드를 나누어 줄 때,(1) 적어도 1 장이 ace 일 경우의 수는?(2) 두 장이 모두 ace 일 경우의 수는?(3) 한 장 만이 ace 일 경우의 수는?풀이. (1) 곱의 법칙에 의하여 4×3 가지(2) 여사건을 이용하여 계산한다. 즉, 두 장이 모두 ace 가 아닌 경우의 수는 모두 48 x 47가지이므로, 구하는 경우의 수는 52×51 - 48×47 = 396다른방법으로 ace×ace 가 아닌 것 또는 ace 가 아닌 것×ace 인 경우이므로
  15. 15. 4 × 48 = 192 48 × 4 = 192따라서 구하는 전체 경우의 수는 모두 396 가지(3) (1)에 의하여 396 - 12 = 384 가지예제 3. 3 명의 남자와 6 명의 여자가 한 줄로 정렬한다. 이 때, 두 남자는 계속하여 줄서지않는다고 한다.정렬할 수 있는 가능한 경우의 수는?풀이. 먼저 여자들이 정렬하는, 방법을 구하면 6! 이다. 이 때, 여자와 여자 사이의 빈 칸에 남자가 추가되는 것으로 이해하면, 모두 7 칸의 빈 칸중에서 3 칸을 골라서 나열한 것이므로 따라서 구하는 경우의 수는예제 4. 1 부터 9 까지의 수자 중에서 연속한 두 수자를 뽑지 않고서 3 개의 수자를 선택하는방법의 수는?풀이. 선택한 수를 1, 선택안한 수를 0 으로 표시한다면, 예를 들어 1001010000 은 숫자 1, 4,6 을 뽑은 것으로 생각 할 수 있다. 따라서, 6 개의 0 이 나열되어 있고 0 사이의 빈칸 7 개중에서 3 개를 고르면 되므로 구하는 경우의 수는 이다.출처 : http://web.chungbuk.ac.kr/~wkkim/L51-0005_02_01.html#제 2 절2. 일 정 일 정 내 용
  16. 16. 팀의 팀장을 정하고, 과제에 대해 토의 후 팀원의12. 4. 11 임무분담을 정함. k-combination 에 대한 과제 2 의 알고리즘을 구하고,12. 4. 17 소스의 초안을 완성함. 과제 2 의 소스 초안을 바탕으로 한 문제점을 토의 후12. 4. 18 최종안을 완성함.12. 4. 19 보고서 작성 후 검토3. 업무분담 이 름 분 담 내 용고충욱 조장임무 및 자료조사김시백 보고서작성 및 자료조사안영준 알고리즘을 바탕으로 한 소스구성
  17. 17. 정진아 알고리즘 구성 및 자료조사 최보은 알고리즘 구성 및 자료조사4. 초 안(1) 알고리즘 및 소스1.문자를 받는다.(숫자를 받을 때마다 n 갯수를 늘리고 마지막 괄호를 닫을 때 n 개수를 계산해서arc 에 넣는다.)2.숫자를 받는다.(cnt)3.순서를 정해두는 변수에 순서를 저장한다(본 코딩에선 sun[])4.맨 처음은 문자를 순서대로 cnt 만큼 출력한다.5.마지막이 아닐 경우 (, )를 출력한다.6.출력문자중 제일 마지막 문자에 해당하는 sun[]의 수를 올린다.(ex:cnt=3 일 경우-sun[1]sun[2]sun[3]이 sun[1]sun[2]sun[4]가 된다.)7.문자를 sun[]에 입력받은 대로 cnt 만큼 출력하고 6 번부터 다시 실행한다.8.만약 sun[현재숫자]이 더 이상 커질 수 없을 때 sun[현재숫자-1]이 한칸을 옮기고sun[현재숫자]는 sun[현재숫자-1]의 뒤에 두고 다시 7 번으로 간다.9.마지막까지 갔을 때 종료시킨다.#include <stdio.h>int main(){
  18. 18. char ch[20];char v;int cnt;int arc;int b;int m;int n;for(;;){scanf("%c",&v);if(v=={ && m==0){m++;}else if(ch[n-1]!=, && v==}){break;}else if(n==21){break;}else if(v!=,){ch[n]=v;n++;}}arc=n-1;
  19. 19. b=arc+1;if(n-1==19){arc=20;}scanf("%d",&cnt);/*1. 처음 세 문자를 출력한다.2. 다음에 마지막 한문자를 뒤로 옮겨서 재 출력한다.3. 마지막 문자가 마지막에 닿았을때 그 앞순서문자를 뒤로 한칸옮긴다.4. 마지막 까지 출력을 다하면 끝낸다.*/scanf("%d",n);}5. 문제점프로그램에서 원소와 선택하는 방법의 수를 입력하였지만, 이것을 토대로 출력값이 알맞게 생성되지 않음.6. 해결소스#include <stdio.h>int main(){char ch[20];char v,w;
  20. 20. int sun[20];int cnt;int arc;int in[20];int x,y,z;int m=0;int n=1;int l;int a=0,b,c;for(y=1;y<=20;y++){sun[y]=y;}for(;;){scanf("%c",&v);if(v=={ && m==0){m++;}else if(ch[n-1]!=, && v==}){break;}else if(n==21){break;}else if(v!=,){
  21. 21. ch[n]=v;n++;}}arc=n-1;b=arc+1;if(n-1==19){arc=20;}scanf("%d",&cnt);for(;;){for(x=1;x<=cnt;x++){printf("%c",ch[sun[x]]);}b=arc+1;for(z=cnt;;z--){sun[z]++;c=z;if(a==1){for(;c<=cnt;c++){sun[c+1]=sun[c]+1;a=0;}}
  22. 22. if(sun[z]!=b){break;}else{a++;b--;}if(sun[1]==arc-cnt+2){break;}}if(sun[1]==arc-cnt+2){break;}printf(", ");}scanf("%d",n);}7. 회의록<1 차> 회의일시 2012 년 04 월 09 일 조 D3 작성자 11 최보은 참석자 08 고충욱 09 김시백 11 안영준 11 정진아
  23. 23. 1. 문제 파악 2. 업무 분담회의안건 3. 앞으로의 계획 설정 4. 방법 1, 2, 3 논의 내 용 비 고 -주제 정렬(sorting)에 대해 간단한 토의 -업무분담 : 조장 - 고충욱 보고서 - 김시백 자료조사 - 정진아, 최보은 소스코딩 - 안영준회의내용 -방법 1, 2, 3 논의 : 정렬을 사용해 경우의 수 구하기. 정렬(비교 + 이동), 비교 (비교) -다음 시간까지 관련 용어에 대해 숙지. -알고리즘 회의 : 입력형태 - {x,y,z}, 최대 20 개까지 입력 ~4/17 까지 소스 완성.<2 차>회의일시 2012 년 04 월 17 일 조 D3 작성자 11 최보은 참석자 08 고충욱 09 김시백 11 안영준 11 정진아
  24. 24. 1. 자료조사 토의 2. 알고리즘 문제점 토의회의안건 3. 방법 1, 2, 3 논의 4. 앞으로의 일정 계획 내 용 비 고 - 자료조사 토의 : 셈의 원리(합의 법칙, 곱의 법칙) 중복순열, 중복조합, 순열, 조합 각각의 정의와 공식 구현방법에 대해 토의 - 알고리즘 문제점 토의 : ex) {a,b,c} 2 입력 경우 ab -> ac 넘기는 부분 토의회의내용 회의 후 ~18 까지 소스 완성 - 방법 1, 2, 3 논의 : 셈의 논리(합의 법칙, 곱의 법칙)을 이용해 회의 후 결과 도출 - 일정 : 다음 시간 최종 소스 이해 최종 보고서 작성 방법 1, 2, 3 을 완벽히 작성
  25. 25. <3 차>회의일시 2012 년 04 월 18 일 조 D3 작성자 11 최보은 참석자 08 고충욱 09 김시백 11 안영준 11 정진아 1. 용어 공식 정리 2. 방법 1, 2, 3 정리회의안건 3. 최종 소스 이해 4. 최종 보고서 작성회의내용 내 용 비 고
  26. 26. - 중복조합(서로 다른 n 개에서 중복을 허용하여 r 개를택하는 조합)공식: nHr = n+r-1Cr 임을 유도 및 토의- 방법 1, 2, 3 정리: 보고서에 넣는 양식으로 마지막 최종 정리- 최종 소스 이해: 전 회의의 문제점 해결을 바탕으로 소스 구현, 및 소스이해- 최종 보고서 작성: 기초로 만들어진 보고서를 바탕으로 회의를 통해 보고서작성

×