Computer Programming/AI

WIL_세 번째 주

JYCoder 2023. 8. 26. 19:44

세 번째 주 주말이다.

 

Facts

이번주에는 3가지 개인 과제를 진행하고 algorithm을 배우기 시작했다. 개인 과제는 '1. up and down game, 2. 가위바위보 게임, 3. class를 이용한 멤버관리 시스템'을 만드는 것이었다. 첫 번째와 두 번째 프로그램은 비교적 금방 작성을 했는데, 세 번째 멤버관리 시스템은 시간이 좀 걸렸다. 한 class로 instance를 생성하고, 생성된 instance에 세 개의 instance를 만드는 것이 복잡하게 느껴졌다. 그래도 username attribute으로 두 개의 class를 서로 이어주고 각각의 instance에 여러 개의 instance를 생성할 수 있도록 해서 프로그램을 무사히 작성했다. 목요일 부터는 아침마다 알고리즘 실시간 강의를 듣고 매일 한 시간씩 programmers라는 사이트에서 알고리즘 문제를 풀기 시작했다. Data structure에 대해서도 배웠다.

 

Feelings

일단 어려웠던 만큼 결과물에 대한 보상이 크게 느껴졌다. 처음에는 내가 이걸 할 수 있을까 하며 걱정했지만, 결국 해냈을 때 기쁨이 정말 컸다. algorithm은 어려웠다. 강의를 들을 때에는 그런가 보다 하고 넘어갔는데, 직접 코드로 구현을 할 때는 쉽지 않았다. 오전에 한 시간 씩 알고리즘 문제를 푸는데 어떤 문제는 40분이 걸리기도 했다. 시간이 많이 걸리지만, 그래도 결국에는 해결 방법을 찾는 스스로의 모습을 통해 약간의 자신감을 얻었다. 퍼즐을 푸는 것 같기도 해서 그런지 좀 재미가 느껴졌다.

 

Findings

튜터님께서 알고리즘을 공부하면 컴퓨터 외의 다른 분야, 그리고 생활 모든 면에서 도움이 될 것이라고 하셨는데, 나도 그렇게 생각한다. 어떻게 하면 좀 더 효율적으로 할 수 있을지, 또 어떻게 풀어나가면 좋을지 다양한 방법들을 생각해 보고 논리적으로 정리를 하는 것이 쉽지는 않지만 익숙해 진다면 다양한 분야에서 일을 처리하고 다루는 데에 많은 도움이 될 것이라고 생각한다. 또한, 이해가 잘 되지 않는 부분이 있다면 더 차분한 마음으로 문제를 찬찬히 살펴보고 충분한 시간을 갖고 다양한 방법으로 생각을 해 본다면 결국 좋은 답을 찾을 수 있는 것 같다. 어려워도 포기하지 않는 마음! 이 마음이 제일 중요한 것 같다.

 

Future

알고리즘도 배우기 시작했으니, 프로그램을 작성 할 때 효율적인 면도 함께 고려할 것이다. O(n^2)이 있다면 O(n)으로 작성하는 방법을 생각해 볼 것이다. 또, data structure 중 linkedList와 stack을 class로 구현하는 것도 빈 페이지의 IDE에서도 잘 작성할 수 있도록 복습을 해야겠다.

 

LIST

'Computer Programming > AI' 카테고리의 다른 글

TIL_Python의 framework, Django  (0) 2023.08.30
TIL_Django 시작  (1) 2023.08.29
TIL_자료구조 stack  (0) 2023.08.26
TIL_Array와 LinkedList(Algorithm)  (0) 2023.08.25
TIL_Algorithm  (0) 2023.08.24