[기초 Lv.0] 369게임

oaksusu·2024년 1월 12일
0
post-thumbnail

오답노트 4번

1. 문제 (링크) :

머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요.

2. 내가 푼 방법 :

function solution(order) {
    return [...String(order)].reduce((acc, cur) => {
        if (+cur % 3 === 0) {
            return acc++; // <---------------------------------궁금한 지점
        } else {
            return acc;
        }
    } , 0);
}

3. 괜찮아 보였던 풀이 방법 (참고할 만한 풀이):

match 메서드는 배열로 반환

function solution(order) {
    return [...String(order).matchAll(/[3|6|9]/g)].length
}

3. 궁금한 점 :

여기서 궁금한점은 왜 return acc++로 하면 안되고
return acc + 1;이여야 하는지다.

4. 궁금한 점 해설 :

(ㄱㅇ 언니♥️의 도움으로 챗지피티를 활용한 답변을 얻었다..!)

>> ChatGPT

return acc + 1이 더 명확하고 바람직한 이유는 코드의 의도를 명확히 전달하기 때문입니다. 코드를 읽는 사람이나 혹은 이 코드를 유지보수하는 개발자가 읽을 때 더 이해하기 쉽기 때문입니다.

가독성:
return acc + 1: 이 코드는 현재의 누적값 acc에 1을 더한다는 명확한 의미를 전달합니다.
return acc++;: 후위 증가 연산자(++)를 사용하는 경우, 누적값을 먼저 반환하고 나서 1을 더하게 됩니다. 이러한 코드는 읽는 사람에게 혼란을 줄 수 있습니다.
명확성:

return acc + 1: 1을 더하는 것은 명확하게 개수를 증가시키는 행동을 나타냅니다.
return acc++;: 후위 증가 연산자를 사용하면서 증가된 값을 반환하는 코드는 일반적인 사용법과는 다를 수 있어서 혼동의 여지가 있습니다.

일관성:
++ 연산자는 변수를 증가시키는 효과가 있지만, 이 연산자를 반환 값으로 사용하는 것은 의도가 명확하지 않을 수 있습니다.
return acc + 1은 더 명시적이며, 다른 개발자들이나 코드 리뷰어들이 누적값이 어떻게 증가하는지 쉽게 이해할 수 있습니다.
물론 이는 개발자의 개인적인 취향에 따라 다를 수 있습니다. 하지만 대체로 명시적이고 간결

profile
삐약

0개의 댓글