관련 포스팅
1. Perl과제 기록
2. Pascal과제 기록
3. Prolog과제 기록
프로그래밍언어 시간에 과제로 부여한 Perl이란 언어로 여러가지 자료구조들을 이용한 프로그램을 구현을 했습니다.
- 임의의 숫자 12개를 입력 받은 이진 트리를 출력하시오.
- F0 = 0, F1 = 1 그리고 Fn = Fn-1 + Fn-2 (n≥2)일 때, 임의의 숫자를 입력받아서 그 수보다 작은 수(혹은 같은수)까지의 피보나치 수열을 출력하시오.
- 임의의 숫자 12개를 입력 받아 퀵정렬 알고리즘을 사용하여 정렬하시오.
- 다음 그래프에서 1번 노드에서 시작해서 10번 노드로 가는 최단거리를 Dijkstra 알고리즘을 이용해서 구하시오.
- 하노이 탑 알고리즘 구현하시오. 세 개의 막대가 있고 원판의 개수는 임의로 입력 받는다.
3월 초, 윗 문제를 처음 접하고 나서 Perl로 짜라고 하니까 너무나 막막했습니다.
조교님께서 가르쳐주신다고 했으나 20분만에 상황 종료. 이렇게 깔고 프로그램은 이렇게 돌아가요. UNIX에서 돌아가게 하겠다는 분은 굳이 그렇게 하세요 정도?
Perl로 과제했을때의 막막함 참 고민이 되었죠.
학교 도서관에서 Perl 원서를 보고 인터넷에 떠도는 Perl자료들 보니까 Perl이란 언어는 너무 재미있는 언어라는 사실을 알게 되었습니다. 그리고 정규표현식 함수들이 너무나 잘되어 있어서 배우길 잘했다는 생각이 들었습니다.
PHP랑 문법도 비슷하지, 정규표현식 같은 것도 다른 언어에 비해서 많이 제공이 되지, 쉘프로그래밍과 문법 유사, 생산성은 C, C++, JAVA의 몇배쯤 될듯 하고(금방금방 짤수 있을 정도의 구조 +_+), 이렇게 기가 막힌 언어를 보긴 처음입니다.
(초등학교때 GW-BASIC와 Q-BASIC을 처음 접했을때의 기분이랄까?)
처음 공부했을때에는 기호의 압박이 컸었는데 지금은 과제를 거뜬히 할수 있을 정도로 단련이 된듯 합니다.
그런데 4. Dijkstra Algorithm(Shortest Path)는 좀 압박이 좀 있었죠. 자료구조 책에서 이런 이론이 있다는 정도로 나가서 이해가 잘안되었던 기억이 ^^
웹사이트 분석의 기술에릭 피터슨 지음, 김태경 옮김 / 한빛미디어
나의 점수 : ★★★★★
Perl이란 언어를 처음 접한것은 홍익대학교 컴퓨터공학과 97학번 김태경 선배님께서 번역하신
"웹사이트 분석의 기술"이란 책에서 입니다. 이 책에서는 Perl로 웹사이트를 분석한다고 Perl로 된 코드들이 있었는데 그 수많은 괴상망측한 기호때문에 배우길 포기하고 있었습니다.
그런데 프로그래밍 언어 시간에 Perl로 과제를 해보니 기호들이 난해하게 보이지 않고 이 책 자세하게 읽히덥니다. ㅎㅎ
Perl이 배우면 배울수록 재미있어지기 시작했습니다.
Perl과제한다고 자료구조 책을 다시 보니 기억이 새록새록 :D
이제는 Pascal로 아래의 것들을 짜야합니다 OTL
아래는 제가 짠 Perl 프로그램 실행 화면입니다.
Linux에서 Perl를 돌였습니다.
[03/30(금) 03:55 cea5151@linux1] ~/pl/perl/hw$ ex1.pl;ex2.pl;ex3.pl;ex4.pl;ex5.pl
=================================================
Binary Tree Programming
홍익대학교 컴퓨터공학과 3학년 A511151 ***
=======================================================
순서대로 Enter를 누르면서 12개의 숫자를 입력하십시요.
49
36
64
40
50
55
24
20
68
85
12
39
Tree 구조를 보여줍니다! :D
................... 85
............... 68
........... 64
................... 55
............... 50
....... 49
............... 40
................... 39
........... 36
............... 24
................... 20
....................... 12
=================================================
Fibonacci Sequence Programming
홍익대학교 컴퓨터공학과 3학년 A511151 ***
=================================================
Input the number : 5
0 1 1 2 3 5
========================================================
QuickSort Algorithm
홍익대학교 컴퓨터공학과 3학년 A511151 ***
========================================================
입력시 Enter를 누르지 말고 띄어쓰기를 하면서 12개의 정수를 입력하세요.
Ex) 0 56 19 80 58 47 35 89 82 74 17 85
Input the number : 85 17 74 82 89 35 47 58 80 19 56 0
Sorting numbers : 0 17 19 35 47 56 58 74 80 82 85 89
==============================================================
Dijkstra Algorithm (Shortest Paths)
홍익대학교 컴퓨터공학과 3학년 A511151 ***
==============================================================
1 -> 2 -> 6 -> 9 -> 7 -> 10
=================================================
Hanoi top Algorithm
홍익대학교 컴퓨터공학과 3학년 A511151 ***
=================================================
Input board number : 3
board 1 [1->3]
board 2 [1->2]
board 1 [3->2]
board 3 [1->3]
board 1 [2->1]
board 2 [2->3]
board 1 [1->3]
[03/30(금) 03:55 cea5151@linux1] ~/pl/perl/hw$