분류 전체보기 24

항해 99 3주차를 끝내며

알고리즘을 배운 지 벌써 2주를 넘어서고 있다. 이번 주에는 그래프와 이를 탐색하는 대표적인 방법 2가지, 그리고 트리에 대해서 학습하였다. 이런 기본적인 개념을 모르는 상태에서 그래프 탐색에 관련하여 전혀 감을 잡지 못 하고 있었다. 스택과 큐를 이용해서 DFS와 BFS를 배우고, 후에 재귀함수를 통해 DFS를 구현하는 방법을 배웠다. 트리는 그래프와 거의 같지만, 부모 노드와 자식 노드로 구별할 수 있고, 순환 구조를 가지지 않는 등 독특한 특징을 가진다는 것에서 다르다. 그래프 여기서의 그래프는 임의의 개수의 node들과 그 node들을 연결하는 edge로 구성된 것이다. 2차원 배열을 통해 각각의 node가 어떤 node와 연결 되었는지를 표기하는 방법과, dictionary 형태를 통해 각각의 ..

항해 99 2022.01.30

프로그래머스 등굣길

프로그래머스 Lv.3 동적 프로그래밍 문제인 등굣길 문제입니다. 해당 문제의 링크입니다. 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 문제의 골자는 집에서 학교까지 가는 최단 경로의 수를 구하되, 웅덩이들이 존재하여 웅덩이를 지나지 않는 최단 경로만을 계산하는 것입니다. 이러한 문제는 경우의 수 합연산으로 학창 시절에 풀어본 경험이 있어, 거기서 아이디어를 얻었습니다. 해당 지점까지 최단거리로 가기 위해서는 아래나 오른쪽으로만 이동할 수 있고, 따라서 해당 지점에서 도착하는 경우의 수는 해당 지..

배운 것 2022.01.26

항해 99 2주차를 끝내며

사전 프로젝트를 마치고, 알고리즘에 대해 공부하는 주차에 들어섰다. 파이썬을 이용해서 공부를 시작했는데, 아무래도 나는 파이썬을 최초로 컴퓨터 언어를 접한 만큼 더 익숙한 상태였지만, 자바스크립트나 자바를 최초로 접한 사람들, 그리고 컴퓨터 언어를 이전에 접해보지 못했던 사람들도 있었던, 아니 꽤나 많았던만큼 적응에 진통이 있었던 것 같다. 수업은 문자열을 다루는 기본적인 방법에서부터 시작하여, 리스트와 연결리스트, 스택, 큐, 해시 테이블, 그리고 DFS와 BFS까지 진행된 상태이다. 스파트라 코딩클럽의 입장에서도 알고리즘과 관련된 교육을 진행하는 것은 처음인지 꽤나 서툴렀던 것 같다. 강의 계획은 잡혀 있었지만, 그 강의 계획에 따라서 수업이 진행되지 못했고, 시간 분배에 있어서도 만족스럽지 못했다...

항해 99 2022.01.23

항해 99 1주차를 끝내며

1월 10일부터 시작한 항해 99 1주차를 마무리지었다. 난생 처음으로 웹을 만들어보고, 다른 사람들과 함께 무언가를 작업하는 경험을 할 수 있었다. 혼자서 무언가를 하는 것과는 물론 차이점이 있을 것이라고 생각하긴 했지만, 실제로 해보니 체감되는 차이는 더 컸다. 기본적으로 혼자 무엇을 할 때에는, 다른 사람이 알아보기 힘든 구문도, 자신이 잘 이해하고 익숙해져 있다면 문제가 없었다. 그러나, 다른 사람들과 협업을 할 때에는 그 무엇보다 가독성이 중요함을 깨달았다. 가령, 아무리 재미있는 이야기를 떠올렸다고 할지라도 그것을 라틴어로 기록한다고 해보자. 안타깝게도 그 재미있는 이야기는 라틴어를 알고 있는 사람을 제외하면 아무도 읽지 못할 것이다. 코드에서는 이런 문제가 더 심해지는데, 가독성이 나쁜 코드..

항해 99 2022.01.16