페어 리뷰를 받았다. “페어를 배려하는 마음이 굉장히 크신 것 같습니다. 분위기를 편안하게 해주시고 전반적으로 상대방에게 먼저 잘 맞춰주시는 분 같았습니다.” 라는 말에 감동했다. 너무 독단적이지 않으려고 항상 노력했지만, 아닌적도 많았다. 페어프로그래밍은 나를 항상 새롭고 돌아보게 만든다. 페어님 감사합니다.!
Today’s Key 🔑
- Toy 알고리즘 문제를 풀면서 아침을 상쾌(🙃)하게 시작했다.
- 페어님과 N-Queens 스프린트를 마무리하였다. Rooks를 표현하는 코드를 반복문 말고, 리커젼으로 표현해도 좋았을 것 같다. (레퍼런스 코드는 너무.. 빠르다..)
- 스프린트를 생각보다 빨리 끝내서, HA를 대비한 이전 내용 복습을 진행했다.
- 알고리즘 코플릿을 다양하게 풀었다.(mergeSort, gcd를 활용한 소숫점 표시문제, reduceRight로 콜백 넘기기 등)
reduceRight 메소드라니..
말 그대로 기존에 내가 알고 있던 배열의 reduce 메소드를 오른쪽 인자부터 적용시켜주는 강력한 메소드였다. 토이 문제를 풀면서 ‘콜백 함수의 합성 사용’과 관련된 개념을 이해해야 했고, MDN을 정글처럼 헤매던 중 발견했다. 사용 방법은 아래와 같다. (JDS에도 정리해놨다.) 배열의 함수형 매소드 정리
// Array.prototype.reduceRight()
let doubleArray = [
[0, 1],
[2, 3],
[4, 5],
];
var flattened = doubleArray.reduceRight((acc, cv) => acc.concat(cv), []);
// flattened -> [4, 5, 2, 3, 0, 1]
위의 코드에서 초기 누적값은 빈 배열로 설정되어 있고, cv는 doubleArray의 맨 오른쪽 요소인 [4, 5] 부터 누적값에 concat() 된다. 정말 신기하지 않은가? 화살표 함수로 reduce 함수를 사용하는 방법도 이번 기회에 잘 알게 되었다.