• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

간단하게 코드리뷰 부탁드립니다.

19.03.30 11:51 작성 조회수 83

1

안녕하세요. 강의 잘 듣고 있습니다.

정답예시를보니 제 것과 조금 다른데요.

이렇게 코딩을 해도 괜찮은지 개선부분은 없는지 간략하게나마 리뷰부탁 드립니다.

git: https://github.com/jayxwoo/js-playground/blob/master/exc4.html

답변 4

·

답변을 작성해보세요.

1

안녕하세요. 추가 조언 달아주셔서 감사합니다. 사실 알고리즘도 잘 모르는 입문자 수준이라 말씀해주신 조언이 처음에는 조금 이해하기 어려웠습니다.

우선 알고리즘의 효율성이라는 것 부터 잘 몰라 검색을 해보았습니다.

알고리즘 효율성: 알고리즘의 수행 시간 또는 알고리즘이 수행하는 동안 사용되는 메모리 공간의 크기로 나타낼 수 있다. 이것은 시간 복잡도(time complexity), 공간복잡도(space complexity)라고 한다.

개선방법: 1. 이중루프 제거 2. function을 쪼개어 한가지 일 씩만 하도록 코딩한다.

이렇게 개선하여 다시 코딩을 해 보았습니다.

조언 주신대로 알고리즘 효율성 측면에서 개선이 되었는지 간단하게 코드리뷰 부탁드립니다.

git: https://github.com/jayxwoo/js-playground/blob/master/exc4b.html

0

전에 답변을 달았는데 답변이 사라졌네요. 

잘 짜셨는데 조금 더 첨언을 드리자면 

소수인지 아닌지 알고 싶을 때는 2 부터 루트 N 까지만 나눠보면 됩니다. (수학적으로 그렇습니다.)

코드는 간결하게 아래처럼 짜면 되구요.  

for (var i = 2; i * i <= n ; i++) {

//...

0

참 사실 알고리즘의 효율성 측면에서는 개선부분이 조금 있습니다. 한 번 더 생각해 보고 검색을 통해서 확인해 보시는 것도 좋습니다.

0

지금 단계에서는 잘 짜셨습니다. 로직도 창의적이고 재밌는 것 같아요 :D

  • 주석은 짧고 간결하게 다는 것이 좋습니다. 코드만으로 이해할 수 있는 코드가 가장 좋은 코드라고 합니다.