Baekjoon for문 N찍기 풀기(재귀욤재귀욤^&^)

백준 온라인 저지먼트 문제를 1 ~ N까지 찍어보라는 초 간단

단순한 문제지만 for 쓰기 싫어서 재귀로 풀어봤습니다. ㅎ

코드는 아래와 같습니다.

(function(){

    var input = 10;

    (function(input) {
        if(input === 1){
            return console.log(input); //input이 1이면 1찍고 리턴합니다.
        }
        //console.log(input) 을 여기에두면 1 ~ 10 이 아니라 10 ~ 1이 출력됩니다
        recursive(input -1);    //재귀적으로 recursive를 다시 호출합니다.
        console.log(input);    //recursive가 리턴되면 console.log()가 실행됩니다.
    })(input); //함수 호출
})();

문제는 for문 쓰라고 했지만 for문 귀찮기도 하고, 얼마전에 for문 쓰지 말라는 글을 봐서

for문을 지양하는 코드를 사용해 봤습니다.

물론 성능만 따지자면 for문이 더 낫지만, javascript의 특징으로 따져보자면, scope를 생성하지 않는(let 제외)

for문은 지양하는 것이 적절 할 듯합니다. 이런걸 함수형 프로그램이라고 하나요? input output을 확실히 한다는 점에서요.

아직 함수형 프로그래밍 기법이 뭔지 모르니 뭐라 말할 자격은 없는 것 같습니다.

집에 박아논 함수형 프로그래밍 책이나 읽어야 겠네요.

1개의 좋아요

airbnb lint 룰에서는 for를 못 쓰게 하고 forEach, find, filter등의 es6 스러운 방법을 권장합니다.

재귀도 좋긴 하지만 끝까지 돌아야 한다면, 코드는 forEach가 더 깔끔하죠. 돌다 말아야 한다면 find도 있고요.

1개의 좋아요

답변 감사합니다. ㅎ 쓰신 댓글중에서 새로지원하는 map, forEach, find, filter 를 좋아하신다고 하신 것을 봤습니다.

처음에는 왜 좋아하시는지 몰랐는데, 스코프에 대해 조금씩 알아가다보니 이해가 가는 것 같습니다.

1개의 좋아요