쉽고 자연스럽게 배워보는 - 코드스쿼드 마스터즈 코스 레벨1

쉽고 자연스럽게 배워보는 - 코드스쿼드 마스터즈 코스 레벨1

(7개의 수강평)

415명의 수강생

22,000원

코드스쿼드 정호영
평생
입문
68개 수업, 총 13시간 1분
위시리스트 추가
류수빈 프로필

안녕하세요 질문 드립니다 ! 류수빈 2일 전

문제를 풀어가는 중 너무 풀이가 안되서 답안 예시를 참고하며 풀어가는 중에 이해가 안되는 부분이 있어서 질문드립니다 !

if (number % i === 0) {
return false;
}
}
return true;
};
1) return false 와 return true는 정확히 어떤 역활을
하기위해서 사용하는 것인가요 ?
 

1
John Jung 프로필

질문이 있는데 John Jung 12일 전

var result = [];
for (var n = 2; n <= 9; n++){
// store in here
for (var i = 1; i <= 9; i++){
result[0] = n * i ;

result[0] 로 하지않고 

result[i] 로 해도 작동하는데

 

왜 i 로 해도 작동하는지 이해가 잘 안되네요..

1
Go9 프로필

연산자에 대해 질문이 있습니다 :) Go9 20일 전

복습 과정 중, 전에는 그냥 지나쳤던 것이 질문이 되어
하나 여쭙게 되었습니다.

n은 수식으로 나타내면
2≤ n ≤ 9 의 범위에 해당합니다.

그러나 if ( 2 <= n <= 9)라 하면 해당 범위가 아닌 숫자들도 계산이 되는데, 이 이유가 혹시 어떤 것때문인가요?

 

<script>
        var n = Number(prompt("몇 단을 출력할까요?"))
        // 원하는 값이 있으면 var n = x;
            if (n >= 2 && n <= 9) {                                   // if ( 2 <= n <= 9) // 이 식이 성립되지 않는 이유는 뭔가요?? 
                var i = 1;
                while(i <= 9) {
                    document.write(n + " * " + i + " = " +  (n * i) + "<br>");               
                    console.log(n + " * " + i + " = " +  (n * i));
                    i++;
                }
            }  else {
                document.write("2 이상, 9 이하의 값만 입력할 수 있습니다.");
                console.log("2 이상, 9 이하의 값만 입력할 수 있습니다.");
            }
    </script>

1
Go9 프로필

궁금한 점이 생겨 질문드립니다 :) Go9 29일 전

안녕하세요! 코드를 짜보면서 궁금한 점이 생겨 질문합니다. 

올려주신 예제 코드를 보았을 때,

두 번째 printResult 함수의 매개 변수 중 x는 구구단 결과를 출력합니다. 그러나 두 번째 매개변수인 ret은 사용 목적이 어떻게 되는 것인가요?

 

 

3
Go9 프로필

안녕하세요, 코드리뷰 부탁드리려고 합니다. Go9 1달 전

좋은 강의 해주셔서 감사드립니다.

계속 코드를 짜보았지만, 열어보면 무한 로딩만 걸리다가 디버그툴에 의해 중지되기만 하고, 결국 돌아가지를 않아서요 :(
몇 번을 살펴보아도 아직 부족한 탓에 문제점을 찾질 못했습니다.

코드 리뷰 한번 부탁드립니다. 

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
</head>
<body>
    <script>
        var numbers = {};
        numbers.Prime = [];
        numbers.All = [];

        numbers.isprime = function(number) {
            for(i = 2; i < number; i++) {
                if(number % i === 0) {
                    return false;
                }
            }   
            return true;
        };
        
        numbers.AllNumber = function(maxnum) {
            for(i = 2; i <= maxnum; i++) {
                this.All.push(i);
            }
        };

        numbers.splitprime = function() {
            for(i = 0; i <= this.All.length; i++) {
                var a = this.All[i];
                if (this.isprime(a)) {
                    this.Prime.push(a);        
                }
            }
        };
        numbers.printprime = function() {
            document.write("전체 소수의 개수: " + this.Prime.length + "<br>" + "<br>");
            for(var i = 0; i < this.Prime.length; i++) {
                document.write((i+1) + "번째 소수: " + this.Prime[i] + "<br>");
            }
        };
        
        numbers.AllNumber(10);
        numbers.splitprime();
        numbers.printprime();

    </script>    
</body>
</html>

3
JUNG-MIN WOO 프로필

14:00 코드 실행오류 관련. JUNG-MIN WOO 1달 전

14:00 쯤에 실행오류 나셨던거,, onClick을 onclick으로 작성하니까 올바르게 실행되네요. onclick의 c를 대문자 C가 아니라 소문자 c로 하니까 되네요. 

1
John Jung 프로필

소스트리 에서 깃허브에 push 하는 과정중에... John Jung 1달 전

로컬 폴더안이랑 github 서버 를 클론해서 연결하였는데..

 

gitignore 파일이 보이지 않습니다. 부탁드립니다. 감사합니다. 

1
wkaksor 프로필

코드 한 번 봐주실 수 있나요 wkaksor 2달 전

영상 풀이와는 별개로 개인적으로 해보고 싶었던게 있어서 질문드립니다 ㅎ

먼저 제 목표는 아래와 같았습니다.

'2단에서 9단까지만 구구단 구현이 가능하게 하고, 그 외 숫자를 넣으면 다시금 단을 입력하는 프롬트창으로 돌아가게 할 것'

일단 실행은 얼추 되는데 코드는 엉망인 것 같습니다. 특히나 if구문을 어떻게 처리해야 할지 모르겠네요. 일단 임의로 console.log를 적긴 했는데 if구문에 혹시 아무것도 안적고 공란으로 둬도 되나요?

부족한 점이 많아서 전반적인 수정 방향에 대해 조언 주시면 정말 감사하겠습니다.

 

<script>    
var str;
    
while (true) {    
    str = Number(prompt("단을 입력하시오. (2단~9단만 가능)"));    
    if (str < 2 || str > 9) {
        console.log("재입력 요구")                
    } else {
        break;
    }
}

document.write("[" + str + "단]" + "<br>");
    for (i = 1; i <= 9; i++) { 
        document.write(str + " x " + i + " = " + str * i + "<br>");
    }
</script>

 

 

1
JUNG-MIN WOO 프로필

코드리뷰 두번째 JUNG-MIN WOO 3달 전

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

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

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

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

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

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

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

1
JUNG-MIN WOO 프로필

간단하게 코드리뷰 부탁드립니다. JUNG-MIN WOO 3달 전

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

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

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

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

4
Stella 프로필

var str 을 정의할때 계속해서 += 로 추가하는 특별한 이유가 있나요? Stella 4달 전

안녕하세요 선생님
var str 을 정의할 때

var str = "";
str += n;
str += " x ";
str += i;
str += " = "
str += results[i];

이렇게 계속해서 str 에 항목(?)을 추가해 나가잖아요.

그런데 그냥 이걸 처음부터

var str = n + " x " + i + " = " + results[i];

이렇게 쓰면 안되는건가요?

출력되는 결과물은 똑같고, str 의 데이터타입도 string 으로 동일한데
전자처럼 코드를 작성하시는 특별한 이유가 있는지 궁금합니다.
(구구단은 간단한 코드라 그 중요성을 못느끼지만) 혹시 더 복잡한 코드에서는 전자처럼 작성하는 것이 유지보수라던지 가독성 면에서 더 편리한게 있는건가요?

1
JUNG-MIN WOO 프로필

커밋 메세지 관련 질문 JUNG-MIN WOO 4달 전

안녕하세요. 커밋 메세지 관련해서 질문드려요.
구구단1,2단 프로그램 구현 완료 후 커밋 메세지 작성하여 push하여 깃헙에 업로드까지 했습니다.
이때 커밋 메세지를 아래와 비슷하게 했습니다.

커밋 메세지:
구구단 1, 2단 프로그램 (콘솔버전)

코드스쿼드 레벨1 실습
콘솔에만 결과 출력

나중에 이 구구단 프로그램 코드를 조금 수정하여 다시 커밋 할때는 일반적으로 수정한 코드 부분에 관련해서만 커밋메세지를 작성하나요? 아니면 최초 커밋메세지처럼 전반적인 프로그램에 대해서 작성한 후 수정된 부분도 포함해서 작성하나요?

코드수정 후 커밋메세지 작성법에 대해서 궁금하여 문의드렸습니다.
강의 감사히 잘 듣고 있습니다:)

2
JUNG-MIN WOO 프로필

예제2번 질문 (==, === 관련) JUNG-MIN WOO 4달 전

예제2번(1부터 100까지 짝수 합 구하기)질문입니다.

예제풀이를 보면 if문 condition으로 (i % 2 == 0)라고 되어있습니다.

여기서 ==를 사용하셨는데 특별한 이유가 있는 건가요? 아니면 상관없는건가요?

이전 강좌의 질문에서 ==와 ===의 차이점을 간략히 설명해 주신것을 보았습니다.

==는 추상적인 비교, ===는 엄격한 비교.

딱히 지금 중요하지 않는 부분인지 아니면 ==가 쓰인 이유가 있는지 아니면 상관없는건지 궁금합니다.

2
Stella 프로필

제가 작성한 코드에 궁금한 점이 있어요! Stella 5달 전

안녕하세요 선생님!
해설강의 보기 전에 작성한거라 이렇게 해도 되는지 궁금해서요.
일단 작동은 제대로 하는 것 같은데 더 간소화? 할 수 있는 부분은 없는지도 궁금하고요.

    <script>
        var i = Number(prompt("insert number except '1'"));
        var n = 2;
        while (i % n != 0) {
            n++; 
            console.log(i,n,i%n);
        }
        if (n != i) {
            document.write(i + " is not a prime number.");
        } else {
            document.write(i + " is a prime number.");
        }
    </script>        

while 문으로 작성했을 때, 콘솔에 짝수는 아예 console.log 가 안뜨더라구요.
var n = 2 로 설정하고 시작해서 인 것 같은데, 코드를 어떻게 수정하면 2로 나눈 것도 나머지가 0인게 뜰까요?
(3 부터는 다 떠요!)

그리고 여기서 while 문을 for 문으로 바꿔봤는데

         for (var n = 2; i % n != 0; n++) {
            console.log(i,n,i%n);
        }

이렇게 바꿨더니 콘솔에서 표시되는 부분이 달라지네요.
while 문일 때는 콘솔에 자기자신으로 나눠서 나머지가 0 이 되는 것까지 찍혔는데,
for 문으로 바꾸니까 콘솔에는 자기 자신 -1 로 나눈 것까지만 나오더라구요.
(for 문으로 바꿔도 소수이다/아니다 판별은 제대로 하긴 해요!)
보는 입장(?)에서 콘솔에 자기 자신으로 나눈 나머지가 0 인 것까지 나와야 소수인걸 확실히 이해할 것 같은데.. 코드를 어떻게 수정하면 되는 걸까요?
(혹시나 하고 console.log 앞이나 뒤에 n++; 를 넣어보았지만.. 무한히 나누기를 하는 재앙이...ㅠㅠ)

1
김선욱 프로필

clickNumbers() 질문 김선욱 5달 전

 <button id="1" onclick="input.getStr()">1</button>

input.getStr = function() {

var str = event.target.id; // 클릭한곳의 값

}

저는 위와 같이 코드를 작성했습니다.

함수의 파라미터값으로 event를 안받아주었을때도 event.target을 받아올 수 있었는데요.

function(event) 로 event를 parameter로 안받을때와 받았을때의 차이가 궁금합니다.

1