<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=175.193.47.92</id>
	<title>ZeroWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=175.193.47.92"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php/Special:Contributions/175.193.47.92"/>
	<updated>2026-05-15T04:53:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=%EC%83%88%EC%8B%B9%EA%B5%90%EC%8B%A4/2018/C%EC%95%8C/5%EC%9B%941%EC%9D%BC&amp;diff=59212</id>
		<title>새싹교실/2018/C알/5월1일</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EC%83%88%EC%8B%B9%EA%B5%90%EC%8B%A4/2018/C%EC%95%8C/5%EC%9B%941%EC%9D%BC&amp;diff=59212"/>
		<updated>2018-05-13T16:52:14Z</updated>

		<summary type="html">&lt;p&gt;175.193.47.92: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
= 예정 =&lt;br /&gt;
* C언어 문법은 일단 여기까지&lt;br /&gt;
* 본격적 알고리즘 시작&lt;br /&gt;
* 선형 자료 구조(linear data structure)&lt;br /&gt;
** 배열(array) : fixed-sized collection of contiguous data&lt;br /&gt;
** random access &lt;br /&gt;
** 연결 리스트(linked list) : sequential of data linked by pointer&lt;br /&gt;
** node - link&lt;br /&gt;
** array v.s. linked list&lt;br /&gt;
* algorithms for sequential data&lt;br /&gt;
** 탐색(search)&lt;br /&gt;
** 선형 탐색(linear search)&lt;br /&gt;
** 이진 탐색(binary search)&lt;br /&gt;
** 정렬(sort)&lt;br /&gt;
** 선택 정렬(selection sort)&lt;br /&gt;
** 삽입 정렬(insertion sort)&lt;br /&gt;
** 병합 정렬(merge sort)&lt;br /&gt;
*** divide-and-conqurer&lt;br /&gt;
** 퀵 정렬(quick sort)&lt;br /&gt;
** performance&lt;br /&gt;
*** big-O notation(big-Omega, big-Theta)&lt;br /&gt;
*** speed, time complexity&lt;br /&gt;
*** memory, space complexity, in-place sort&lt;br /&gt;
*** stablity&lt;br /&gt;
** swap sort v.s. others&lt;br /&gt;
*** e.g) counting sort, radix sort&lt;br /&gt;
** &#039;&#039;&#039;이번주는 일정이 안맞아 휴강; 다음주에 이 내용으로 진행합니다.&#039;&#039;&#039;&lt;br /&gt;
= 진행 =&lt;br /&gt;
&lt;br /&gt;
= 실습 =&lt;br /&gt;
&lt;br /&gt;
* selection_sort, insertion_sort, merge_sort, quick_sort(,bubble_sort : optional)&lt;br /&gt;
* &lt;br /&gt;
 &amp;amp;lt;sort_instruction&amp;amp;gt; input_file [output_file]&lt;br /&gt;
* any language&lt;br /&gt;
* input : &lt;br /&gt;
** 1st line : # of line N&lt;br /&gt;
** 2nd ~ : (unsorted) N integers&lt;br /&gt;
* output:&lt;br /&gt;
** N line : sorted N integers&lt;br /&gt;
** N + 1 line : elapsed time (in millisecond)&lt;br /&gt;
** print in output file; if no argument, to standard output(terminal console)&lt;br /&gt;
&lt;br /&gt;
= 과제 =&lt;br /&gt;
* 창성&lt;br /&gt;
 #include&amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 #include&amp;amp;lt;stdlib.h&amp;amp;gt;&lt;br /&gt;
 #include&amp;amp;lt;string.h&amp;amp;gt;&lt;br /&gt;
 #include&amp;amp;lt;time.h&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #define swap(type,x,y) type t = x; x = y; y = t; //교환함수&lt;br /&gt;
 &lt;br /&gt;
 void selection(void); //선택정렬&lt;br /&gt;
 void insertion(void); //삽입정렬&lt;br /&gt;
 void merge(int,int); //병합정렬&lt;br /&gt;
 void quick(int,int); //퀵정렬&lt;br /&gt;
 void bubble(void); //버블정렬&lt;br /&gt;
 void output(char*); //(output.txt로 정렬된 수열과 elapsed time 출력) or 표준출력&lt;br /&gt;
 &lt;br /&gt;
 int n;&lt;br /&gt;
 int *a;&lt;br /&gt;
 int *buff;&lt;br /&gt;
 &lt;br /&gt;
 double milsec;&lt;br /&gt;
 time_t start, end;&lt;br /&gt;
 &lt;br /&gt;
 FILE *input_file;&lt;br /&gt;
 FILE *output_file;&lt;br /&gt;
 &lt;br /&gt;
 int main(int argc, char* argv[]){&lt;br /&gt;
   int i;&lt;br /&gt;
   char num[10]; //n은 1,000,000,000미만.&lt;br /&gt;
 &lt;br /&gt;
   input_file = fopen(argv[2],&amp;quot;r&amp;quot;);&lt;br /&gt;
   output_file = fopen(argv[3],&amp;quot;w&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
   if(input_file == NULL){;&lt;br /&gt;
     printf(&amp;quot;ERROR_InputFile\n&amp;quot;);&lt;br /&gt;
     return 0;&lt;br /&gt;
   }//input_file이 존재하지 않으면 에러 출력.&lt;br /&gt;
 &lt;br /&gt;
   fgets(num,sizeof(num),input_file);&lt;br /&gt;
   n = atoi(num); //배열의 크기 N을 구함.&lt;br /&gt;
   a = calloc(n,sizeof(int));&lt;br /&gt;
 &lt;br /&gt;
   for(i=0;i&amp;amp;lt;n;i++){&lt;br /&gt;
     fscanf(input_file,&amp;quot;%d&amp;quot;,&amp;amp;amp;a[i]); //배열 a에 정렬되지 않은 수 받기.&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
   //명령받기.&lt;br /&gt;
   if(!strcmp(argv[1],&amp;quot;selection&amp;quot;)) selection();&lt;br /&gt;
   else if(!strcmp(argv[1],&amp;quot;insertion&amp;quot;)) insertion();&lt;br /&gt;
   else if(!strcmp(argv[1],&amp;quot;merge&amp;quot;)){&lt;br /&gt;
     buff = calloc(n,sizeof(int));&lt;br /&gt;
     merge(0,n-1);&lt;br /&gt;
     free(buff);&lt;br /&gt;
   }&lt;br /&gt;
   else if(!strcmp(argv[1],&amp;quot;quick&amp;quot;)) quick(0,n-1);&lt;br /&gt;
   else if(!strcmp(argv[1],&amp;quot;bubble&amp;quot;)) bubble();&lt;br /&gt;
   else printf(&amp;quot;Wrong_SortInstruction&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
   //결과출력.&lt;br /&gt;
   output(argv[3]);&lt;br /&gt;
 &lt;br /&gt;
   //배열해제 및 파일닫기.&lt;br /&gt;
   free(a);&lt;br /&gt;
   fclose(input_file);&lt;br /&gt;
   fclose(output_file);&lt;br /&gt;
 &lt;br /&gt;
   return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //선택정렬&lt;br /&gt;
 void selection(void){&lt;br /&gt;
   start = clock();&lt;br /&gt;
   int i, j;&lt;br /&gt;
   for(i=0;i&amp;amp;lt;n-1;i++){&lt;br /&gt;
     int min = i;&lt;br /&gt;
     for(j=i+1;j&amp;amp;lt;n;j++){&lt;br /&gt;
       if(a[j]&amp;amp;lt;a[min]){&lt;br /&gt;
         min = j;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
     swap(int,a[i],a[min]);&lt;br /&gt;
   }&lt;br /&gt;
   end = clock();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //삽입정렬&lt;br /&gt;
 void insertion(void){&lt;br /&gt;
   start = clock();&lt;br /&gt;
   int i,j;&lt;br /&gt;
   for(i=1;i&amp;amp;lt;n;i++){&lt;br /&gt;
     int tmp = a[i];&lt;br /&gt;
     for(j=i; j&amp;amp;gt;0 &amp;amp;amp;&amp;amp;amp; a[j-1]&amp;amp;gt;tmp; j--){&lt;br /&gt;
       a[j] = a[j-1];&lt;br /&gt;
     }&lt;br /&gt;
     a[j] = tmp;&lt;br /&gt;
   }&lt;br /&gt;
   end = clock();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //병합정렬&lt;br /&gt;
 void merge(int left, int right){&lt;br /&gt;
   start = clock();&lt;br /&gt;
   if(left&amp;amp;lt;right){&lt;br /&gt;
     int i, j = 0, k = left, p = 0;&lt;br /&gt;
     int center = (left + right) / 2;&lt;br /&gt;
     merge(left,center);&lt;br /&gt;
     merge(center+1,right);&lt;br /&gt;
     for(i=left;i&amp;amp;lt;=center;i++){&lt;br /&gt;
       buff[p++] = a[i];&lt;br /&gt;
     }&lt;br /&gt;
     while(i&amp;amp;lt;=right &amp;amp;amp;&amp;amp;amp; j&amp;amp;lt;p){&lt;br /&gt;
       a[k++] = (buff[j]&amp;amp;lt;=a[i]) ? buff[j++] : a[i++];&lt;br /&gt;
     }&lt;br /&gt;
     while(j&amp;amp;lt;p){&lt;br /&gt;
       a[k++] = buff[j++];&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
   end = clock();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //퀵정렬&lt;br /&gt;
 void quick(int left, int right){ //재귀적인 방식.&lt;br /&gt;
   start = clock();&lt;br /&gt;
   int pl = left;&lt;br /&gt;
   int pr = right;&lt;br /&gt;
   int x = a[(pl+pr)/2];&lt;br /&gt;
   do{&lt;br /&gt;
     while(a[pl] &amp;amp;lt; x) pl++;&lt;br /&gt;
     while(a[pr] &amp;amp;gt; x) pr--;&lt;br /&gt;
     if(pl &amp;amp;lt;= pr){&lt;br /&gt;
       swap(int,a[pl],a[pr]);&lt;br /&gt;
       pl++;&lt;br /&gt;
       pr--;&lt;br /&gt;
     }&lt;br /&gt;
   }while(pl &amp;amp;lt;= pr);&lt;br /&gt;
   if(left &amp;amp;lt; pr) quick(left,pr);&lt;br /&gt;
   if(pl &amp;amp;lt; right) quick(pl,right);&lt;br /&gt;
   end = clock();&lt;br /&gt;
 }//비재귀적인 방법은 스택을 활용.&lt;br /&gt;
 &lt;br /&gt;
 //버블정렬&lt;br /&gt;
 void bubble(void){&lt;br /&gt;
   start = clock();&lt;br /&gt;
   int i = 0, j;&lt;br /&gt;
   while(i&amp;amp;lt;n-1){&lt;br /&gt;
     int last = n-1; //가장 마지막으로 교환이 일어난 위치&lt;br /&gt;
     for(j=n-1;j&amp;amp;gt;i;j--){&lt;br /&gt;
       if(a[j]&amp;amp;lt;a[j-1]){&lt;br /&gt;
         swap(int,a[j],a[j-1]);&lt;br /&gt;
         last = j;&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
     i = last;&lt;br /&gt;
   }&lt;br /&gt;
   end = clock();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //출력함수&lt;br /&gt;
 void output(char* argv){&lt;br /&gt;
   int i;&lt;br /&gt;
   milsec = 1000.0 * (end-start) / CLOCKS_PER_SEC;&lt;br /&gt;
   if(argv){&lt;br /&gt;
     for(i=0;i&amp;amp;lt;n;i++){&lt;br /&gt;
       fprintf(output_file,&amp;quot;%d &amp;quot;,a[i]); //정렬된 배열 a 출력&lt;br /&gt;
     }&lt;br /&gt;
     fprintf(output_file,&amp;quot;\n&amp;quot;);&lt;br /&gt;
     fprintf(output_file,&amp;quot;elapsed_time = %.3f ms\n&amp;quot;,milsec); //elapsed_time 출력&lt;br /&gt;
   }&lt;br /&gt;
   else{&lt;br /&gt;
     for(i=0;i&amp;amp;lt;n;i++){&lt;br /&gt;
       printf(&amp;quot;%d &amp;quot;,a[i]);&lt;br /&gt;
     }&lt;br /&gt;
     printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
     printf(&amp;quot;elapsed_time = %.3f ms\n&amp;quot;,milsec);&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
 //힘들어ㅠㅠ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 승진 - python&lt;br /&gt;
 def swap(x, i, j) :&lt;br /&gt;
     x[i], x[j] = x[j], x[i]&lt;br /&gt;
     &lt;br /&gt;
 def s_selection(x) :&lt;br /&gt;
     for s in reversed(range(len(x))) :&lt;br /&gt;
         max_i = 0;&lt;br /&gt;
         for i in range(1, 1+s) :&lt;br /&gt;
             if x[i] &amp;amp;gt; x[max_i] :&lt;br /&gt;
                 max_i = i&lt;br /&gt;
         swap(x, max_i, s)&lt;br /&gt;
         &lt;br /&gt;
 def s_insertion(x) :&lt;br /&gt;
     for s in range(1, len(x)) :&lt;br /&gt;
         tmp = x[s]&lt;br /&gt;
         i = s&lt;br /&gt;
         while i &amp;amp;gt; 0 and x[i-1] &amp;amp;gt; tmp :&lt;br /&gt;
             x[i] = x[i-1]&lt;br /&gt;
             i -= 1&lt;br /&gt;
         x[i] = tmp&lt;br /&gt;
         &lt;br /&gt;
 def s_merge(x) :&lt;br /&gt;
     if len(x) &amp;amp;gt; 1 :&lt;br /&gt;
         mid = len(x)//2&lt;br /&gt;
         l_x, r_x = x[:mid], x[mid:]&lt;br /&gt;
         s_merge(l_x)&lt;br /&gt;
         s_merge(r_x)&lt;br /&gt;
         &lt;br /&gt;
         l_i, r_i, i = 0, 0, 0&lt;br /&gt;
         while l_i &amp;amp;lt; len(l_x) and r_i &amp;amp;lt; len(r_x) :&lt;br /&gt;
             if l_x[l_i] &amp;amp;lt; r_x[r_i] :&lt;br /&gt;
                 x[i] = l_x[l_i]&lt;br /&gt;
                 l_i += 1&lt;br /&gt;
             else :&lt;br /&gt;
                 x[i] = r_x[r_i]&lt;br /&gt;
                 r_i += 1&lt;br /&gt;
             i += 1&lt;br /&gt;
         x[i:] = l_x[l_i:] if l_i != len(l_x) else r_x[r_i:]&lt;br /&gt;
         &lt;br /&gt;
 def pivotFirst(x, lmark, rmark):&lt;br /&gt;
     pivot_val = x[lmark]&lt;br /&gt;
     pivot_idx = lmark&lt;br /&gt;
     while lmark &amp;amp;lt;= rmark:&lt;br /&gt;
         while lmark &amp;amp;lt;= rmark and x[lmark] &amp;amp;lt;= pivot_val:&lt;br /&gt;
             lmark += 1&lt;br /&gt;
         while lmark &amp;amp;lt;= rmark and x[rmark] &amp;amp;gt;= pivot_val:&lt;br /&gt;
             rmark -= 1&lt;br /&gt;
         if lmark &amp;amp;lt;= rmark:&lt;br /&gt;
             swap(x, lmark, rmark)&lt;br /&gt;
             lmark += 1&lt;br /&gt;
             rmark -= 1&lt;br /&gt;
     swap(x, pivot_idx, rmark)&lt;br /&gt;
     return rmark&lt;br /&gt;
 def s_quick(x, pivotMethod=pivotFirst):&lt;br /&gt;
     def _qsort(x, first, last):&lt;br /&gt;
         if first &amp;amp;lt; last:&lt;br /&gt;
             splitpoint = pivotMethod(x, first, last)&lt;br /&gt;
             _qsort(x, first, splitpoint-1)&lt;br /&gt;
             _qsort(x, splitpoint+1, last)&lt;br /&gt;
     _qsort(x, 0, len(x)-1)&lt;br /&gt;
     &lt;br /&gt;
 def s_bubble(x) :&lt;br /&gt;
     for s in reversed(range(len(x))):&lt;br /&gt;
         for i in range(s):&lt;br /&gt;
             if x[i] &amp;amp;gt; x[i+1]:&lt;br /&gt;
                 swap(x, i, i+1)&lt;br /&gt;
                 &lt;br /&gt;
              &lt;br /&gt;
 import sys&lt;br /&gt;
 import timeit&lt;br /&gt;
 &lt;br /&gt;
 if __name__ == &amp;quot;__main__&amp;quot; :   &lt;br /&gt;
     try :&lt;br /&gt;
         input_file = open(sys.argv[2], &#039;r&#039;)&lt;br /&gt;
     except FileNotFoundError as e :&lt;br /&gt;
         print(str(e))&lt;br /&gt;
         exit(0)&lt;br /&gt;
     &lt;br /&gt;
     n = input_file.readline()&lt;br /&gt;
     data = str(input_file.read()).split()&lt;br /&gt;
     data = [int(i) for i in data]&lt;br /&gt;
             &lt;br /&gt;
     option = sys.argv[1]&lt;br /&gt;
     t_start = timeit.default_timer()&lt;br /&gt;
     if &#039;s&#039; in option :&lt;br /&gt;
         s_selection(data)&lt;br /&gt;
     elif &#039;i&#039; in option :&lt;br /&gt;
         s_insertion(data)&lt;br /&gt;
     elif &#039;m&#039; in option :&lt;br /&gt;
         s_merge(data)&lt;br /&gt;
     elif &#039;q&#039; in option :&lt;br /&gt;
         s_quick(data)&lt;br /&gt;
     elif &#039;b&#039; in option :&lt;br /&gt;
         s_bubble(data)&lt;br /&gt;
     else :&lt;br /&gt;
         s_bubble(data)&lt;br /&gt;
     t_end = timeit.default_timer()&lt;br /&gt;
         &lt;br /&gt;
     try :&lt;br /&gt;
         tmp = sys.argv[3]&lt;br /&gt;
         output_file = open(tmp, &#039;w&#039;)&lt;br /&gt;
     except :&lt;br /&gt;
         output_file = open(&amp;quot;o_&amp;quot;+sys.argv[2], &#039;w&#039;)&lt;br /&gt;
             &lt;br /&gt;
     for d in data :&lt;br /&gt;
         output_file.write(str(d) + &#039; &#039;)&lt;br /&gt;
     output_file.write(&amp;quot;\n&amp;quot;);&lt;br /&gt;
     output_file.write(&amp;quot;%s&amp;quot; % (t_end - t_start))&lt;br /&gt;
     &lt;br /&gt;
     input_file.close()&lt;br /&gt;
     output_file.close()&lt;br /&gt;
= 기타 / 후기 / 방명록 =&lt;br /&gt;
&lt;br /&gt;
-----------------------------------&lt;br /&gt;
[[새싹교실/2018/C알]]&lt;br /&gt;
[[새싹교실/2018]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>175.193.47.92</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=%EC%83%88%EC%8B%B9%EA%B5%90%EC%8B%A4/2018/C%EC%95%8C/4%EC%9B%942%EC%9D%BC&amp;diff=59193</id>
		<title>새싹교실/2018/C알/4월2일</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EC%83%88%EC%8B%B9%EA%B5%90%EC%8B%A4/2018/C%EC%95%8C/4%EC%9B%942%EC%9D%BC&amp;diff=59193"/>
		<updated>2018-04-09T11:36:48Z</updated>

		<summary type="html">&lt;p&gt;175.193.47.92: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
= 예정 =&lt;br /&gt;
* 포인터(pointer)&lt;br /&gt;
** 포인터 타입, 다중 포인터, 포인터 연산, void*&lt;br /&gt;
** pointer as parameter&lt;br /&gt;
** 배열 타입(recall)&lt;br /&gt;
** 배열과 포인터의 관계&lt;br /&gt;
** pointer to arrays, array of pointers&lt;br /&gt;
** 프로그램 인자(argument) : int argc, char *argv[]&lt;br /&gt;
* 동적 메모리 할당(dynamic allocation)&lt;br /&gt;
** 프로세스 구조&lt;br /&gt;
** void* malloc(size_t)&lt;br /&gt;
** void free(void*)&lt;br /&gt;
** calloc, realloc&lt;br /&gt;
* 문자열&lt;br /&gt;
** C에서의 문자열 : null-terminated string&lt;br /&gt;
** string.h&lt;br /&gt;
** strlen, strcmp, strchr, strstr, strcpy, strcat, strtok&lt;br /&gt;
** sscanf, sprintf&lt;br /&gt;
* 함수 포인터&lt;br /&gt;
** void qsort(void*, void*, size_t, int(*)(void*, void*))&lt;br /&gt;
&lt;br /&gt;
* 실습&lt;br /&gt;
** simpleformatter : 간단한 문자열 처리&lt;br /&gt;
 simpleformatter &amp;amp;lt;option&amp;amp;gt; &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;option&amp;amp;gt;&lt;br /&gt;
: {{{&lt;br /&gt;
-r : 문자열 뒤집기&lt;br /&gt;
-u : 소문자를 대문자로&lt;br /&gt;
-l : 대문자를 소문자로&lt;br /&gt;
-a : 알파벳만 남기기&lt;br /&gt;
-n : 숫자만 남기기&lt;br /&gt;
}}}&lt;br /&gt;
** 인자가 없을 경우 : 사용자 입력을 받아 처리&lt;br /&gt;
** &#039;-&#039;가 있는 경우와 없는 경우 &#039;&#039;&#039;모두&#039;&#039;&#039; 처리해야함&lt;br /&gt;
** 옵션만 있으면, 문자열만 입력 받을것&lt;br /&gt;
  &lt;br /&gt;
= 진행 =&lt;br /&gt;
* 과제 : 오늘의 실습을 python으로 구현 (3 추천)&lt;br /&gt;
= 실습 =&lt;br /&gt;
&lt;br /&gt;
* 과제_승진&lt;br /&gt;
 import sys&lt;br /&gt;
 import re&lt;br /&gt;
 &lt;br /&gt;
 try :&lt;br /&gt;
     option = sys.argv[1]&lt;br /&gt;
     s_data = str(sys.argv[2])&lt;br /&gt;
 except :&lt;br /&gt;
     option = input()&lt;br /&gt;
     s_data = input()&lt;br /&gt;
 &lt;br /&gt;
 if option == &#039;-r&#039; :&lt;br /&gt;
     print(s_data[::-1])&lt;br /&gt;
 elif option == &#039;-u&#039; :&lt;br /&gt;
     print(s_data.upper())&lt;br /&gt;
 elif option == &#039;-l&#039; :&lt;br /&gt;
     print(s_data.lower())&lt;br /&gt;
 elif option == &#039;-a&#039; :&lt;br /&gt;
     print(&amp;quot;&amp;quot;.join(re.findall(r&#039;^|[a-zA-Z]&#039;, s_data)))&lt;br /&gt;
 elif option == &#039;-n&#039; :&lt;br /&gt;
     print(&amp;quot;&amp;quot;.join(re.findall(&#039;\d+&#039;, s_data)))&lt;br /&gt;
= 기타 / 후기 / 방명록 =&lt;br /&gt;
* 앗 오늘은 4월3일이잖아 - [[성훈|멍청한 튜터]]&lt;br /&gt;
-----------------------------------&lt;br /&gt;
[[새싹교실/2018/C알]]&lt;br /&gt;
[[새싹교실/2018]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>175.193.47.92</name></author>
	</entry>
</feed>