📗 오늘의 학습 topics
🌿 순열(permutation)
1. 개념
2. 구현
2-a. 반복문
2-b. 재귀
중복순열 구현 시와 달리, 대상 요소를 방문했는지 여부 관리 필요
🌿 조합(combination)
1. 개념
2. 구현
2-a. 반복문
2-b. 재귀
🌿 최대(greatest)공(common)약수(divisor)
1. 개념
2. 구현 - 유클리드 호제법
🌿 제곱근
1. 개념
2. 구현 - 바빌로니아 법의 점화식
점화식(recurrence formula)
💡 생각해보기
- 코딩테스트 플랫폼에서 여러 문제 풀어보기
- 자주 사용하는 알고리즘의 템플릿화 + blogging
🍀 오늘의 소감
- '페어 프로그래밍 대상 문제들을 미리 파악하고 참여해야지' 하는 다짐을 이번에도 지키지는 못했다. 대신 문제는 간략히만 보고, 그 때 느꼈던/파악한, 문제 풀이에 필요한 개념들(
(중복)순열/조합
개념 및 알고리즘, 재귀 구현 코드
등)을 미리 조금 더 준비해갔다.
- 페어님과 (오랜만에) 1문제씩 드라이버-네비게이터 역할을 나눠서 진행했는데, 나는 개인적으로 드라이버-네비게이터 방식이 참 좋은 것 같다. 왜냐하면 나는 페어님의 사고 과정과 문제 접근 방식이 무척 궁금하고 재미있고 많이 배우는데, 역할 분담을 해서 진행할 때 조금 더 자연스럽게 이런 부분에 대해 소통할 수 있게 되기 때문인 것 같다
- 결과적으로도 시간과 우리 각자의 역량을 최대한 활용해서 기대했던 것보다 더 많은 문제를 해결해서 뿌듯했다.
- 하지만 순열 재귀 알고리즘을 내가 정확히 이해한 건 아니었다. 인텔리제이의 디버깅 툴도 재귀함수 호출의 return의 정체를 이해하는 데 아직 도움을 주지는 못했다. 교육엔지니어님께서 설명하실 때 사용하시는 방식대로, 재귀 호출 시마다 브라우저 창을 새로 띄우고 관련 변수 값들의 변화를 메모하며 흐름 파악하는 작업을 꼭 해봐야겠다.
- 수학은 나에게 여전히 로망이며, 내가 좋아하는 컴퓨터로 (순수수학에서와는 조금 다른 관점/접근이겠지만) 한 걸음씩 다가갈 때, 그리고 컴퓨터를 공부하며 수학을 조금 다른 관점으로 이해하고 조금 더 알게 될 때, 무척 기쁘다. 앞으로도 수학과 컴퓨터와 친하게, 더 깊이, 지내고 싶다 💚