본문 바로가기

개발/CodeWars 문제 회고

[python ] 6kyu Unary function chainer

반응형
200124_6kyu_unary_funtion_chainer

Unary function chainer

 

문제

단항 함수의 리스트 묶음의 체이닝을 위해서 higher order 함수를 작성해라.

 

나의 풀이

이 문제를 제대로 풀지 못하였고, 구글 검색을 통해서 방법을 찾아보았다.

내가 이 문제를 풀지 못한 이유는 고차함수에 대한 이해 부족 때문이다. 그래서 stackoverflow에 답을 찾아보기로 하였고, 그로 인한 나의 풀이는 아래와 같다.

내가 최초에 잘 모르겠다고 생각한 부분은, 추가되는 함수 인자 부분을 어떻게 표현해야할지에 대해서 감이 오지 않았다. 예를들면, chained([f1, f2, f3])(1) 에서 (1) 의 경우 이다.

내가 검색해본 stackoverflow 답변에서는 아래와 같이 설명해준다.

1.위 문제와 같은 형태는 1개의 파라미터를 받아서 계산 후, 결과 값을 다시 파라미터로 넘기는 형태이다. 코드로 표현하면 아래와 같다.

2.chained([f1, f2, f3])(1) 을 다시 생각해보면, chained가 return하는 함수에 다시 1 을 넘기는 형태니까, chanined 는 함수를 리턴해야하고(apply) 이 함수에 값은 param 을 통해서 받는 방법이다.

3.이렇게 되면, 일단 apply 가 리턴 될 것이고, 여기에 param 값으로 1이 넘어갈 것이고, apply 내부에서 최초 result 값이 1부터 계산 되어서 최종 값이 리턴되게 된다.

 

 

다른 사람의 풀이

Best practice

내가 참고한 풀이와 똑같이 풀었다.

회고

잘한 점

  • 문제를 잘 풀지 못하여서 잘한 점은 딱히 없는 듯하다.

부족한 점

  • 아직 함수형 프로그래밍에 익숙치 않아서, 어떻게 문제를 풀어야 할지 부터 감을 잘 못잡는 경향이 있다. 이 문제를 계기로 스텝바이스텝으로 공부해보도록 하자.

Action Item

  • 고차함수에 대해서 이해하고 정리해보자
  • 위와 비슷한 코드워즈 문제를 풀어보자
반응형

'개발 > CodeWars 문제 회고' 카테고리의 다른 글

[javascript] Generate range of integers  (0) 2021.01.04
Buying a Car  (0) 2021.01.02
Regex Failure - Bug Fixing #2  (0) 2020.12.20