GLOBAL LEADER
아주대학교 소프트웨어융합대학

모각소

[2022 하계] 장려_보안없는보안학과

  • SW중심대학
  • 2022-10-07
  • 297


<팀원>


사이버보안학과 김태휘

사이버보안학과 김민규

사이버보안학과 최경주



<팀원별 활동내용>


* 백준 단계별 풀어보기 알고리즘 

-> 팀원별로 주제를 선정, 문제 해결 후에 모임에서 코드 리뷰 (피드백) 을 진행했습니다.


김태휘: 스택, 큐, 정렬, 우선순위 큐, 이진탐색, 그래프순회


Ex) 큐2 문제 (#18258), 피드백 내용: 파이썬에서 큐의 pop을 구현하기 위해 pop(0)과 같은 함수를 사용하여 요소를 삭제하는 경우, 나머지 배열을 다시 재배열해야 하기 때문에 빅오가 O(n)이 된다. 그러므로 deque 모듈을 사용하면 좋다는 피드백을 받고 빅오를 O(1)로 줄여 실행 속도를 향상할 수 있었다.


최경주: 세그먼트 트리, 그래프 순회, 분할 정복, 백트래킹, 집합과 맵


Ex) 버블 소트 문제(#1517), 피드백 내용: 버블 정렬의 실행 속도를 향상시키기 위해 반복문을 2번 중첩하는 방식[ O(n^2) ]이 아닌 병합 정렬[ O(nlogn) ]을 이용하여 swap된 횟수를 빠르게 구하는 것이 가능. 문제를 접근하는 데 있어서 실행 시간에 관여하는 시간복잡도의 중요성에 대한 인식을 정립할 수 있었다


김민규: 큐, 힙, 분할 정복, 이진 탐색, 우선순위 큐

Ex) 절댓값 힙 (#11286), 피드백 내용: 절댓값 힙을 구성할 때, 처음에는 양수값과 음수값을 구분하지 않고 처리했는데, 여기에서 힙을 구성할 때 어려움이 있었다. 그래서 양수값과 음수값을 tuple 자료형의 형태로 저장해서 하나의 값으로 만든 뒤 힙을 구성하니 보다 구현이 간단해졌다.


* 이 외 개인별 추가 학습

김태휘 : 파이썬 기본 문법 학습

김민규 : 코틀린 기초 학습

최경주 : React 프레임워크 학습 및 웹페이지 제작



<팀원별 최종성과>


팀원 전체적으로 저번 학기에 배운 자료구조 내용을 바탕으로 백준 알고리즘 풀이를 통해 복습을 할 수 있었다. 


김태휘 : 파이썬 문법 학습을 통해 백준 알고리즘을 보다 간결한 코드로 작성할 수 있게 되었다. 


김민규 : 과거에 자료구조 학습 당시에는 구현된 코드를 암기하거나 복사해서 사용했는데, 이번 학습을 통해서 직접 코드를 구현하는 습관을 기를 수 있게 되었다.


최경주 : 백준 알고리즘을 시간 복잡도 및 알고리즘의 특성을 파악하여 풀 수 있게 되었다. 프론트엔드 학습을 통해 프론트엔드에서 코드 작성 뿐만 아니라 디자인적 요소를 고려하는 것이 어려운 일이라는 것을 알게 되었다.



<팀원별 향후계획>


김태휘 : 이번 기회로 학습했던 파이썬을 통해 평소에 관심있던 기계학습을 배우는 데에 활용하고 싶다. 또한 알고리즘 학습 경험을 토대로 여러 기업체나 대외활동에서 운영하는 코딩 테스트나 대회에 출전해보고 싶다.


김민규 : 방학기간 내 웹페이지를 바탕으로 한 안드로이드 앱 개발 기간을 늘려 2학기 동안 따로 디자인한 앱을 구현해보고 싶다. 이번에 문제에 필요한 자료구조가 무엇일지 생각하는 습관을 알고리즘 수업을 통해 발전시켜보고 싶다.


최경주 : 아직 웹페이지를 완벽하게 만들지는 못했지만, 추후에 추가적인 학습을 통해서 완성해보고 싶다. 또한 플라스크를 통해 API를 만들어 보고 싶다.



<팀원별 개인 URL>


김태휘 : https://github.com/h-wi/TIL

김민규 : https://minqwhale.tistory.com/

최경주 : https://nodplus.tistory.com/



<최종 발표회 자료>