for문

제어문은 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용한다. 제어문을 이용하면 코드의 실행 흐름을 인위적으로 제어할 수 있지만, 실행 순서를 변경하는 것은 직관적인 코드의 흐름을 혼란스럽게 한다. 8.1 블록문 블록문은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부른다. 블록문을 하나의 실행 단위로 취급한다. 블록문은 언제나 문의 종료를 의미하는 자체 종결성을 갖기에 블록문 끝에 세미콜론을 붙이지 않는다. // 블록문 { var foo = 10; } // 제어문 var x = 1; if(x < 10) { x++; } // 함수 선언문 function sum (a, b) { return a + b; } 8.2 조건문 조건문은 주어진 조건식의 평가 결과에 따라 코드 블록의..
클로저란? 클로저는 함수가 속한 렉시컬 환경을 기억해서 함수가 렉스컬 스코프 밖에서 실행될 때에도 함수가 속한 스코프에 접근할 수 있게 하는 기능을 말한다. function foo() { var a = 2; function bar(){ console.log(a); // 2 } return bar; } var func = foo(); func(); GC(Garbage Collector)가 foo()의 참조를 없앨 것 같지만, bar()가 해당 스코프에 있는 a를 참조하기 때문에 없애지 않는다. 그러므로 스코프 외부에서 bar()가 실행되면 스코프를 기억하고 있기에 2가 출력된다. 이때, 클로저는 bar()에서 발생하며, 이는 스코프 외부에서 foo()의 스코프안에 있는 bar()를 참조하기 때문이다. 다시..
문제 설명 문제 풀이 방법 가장 작은 예산부터 더해줘서 지원 가능한 부서의 수를 구해야 한다. sort를 이용해 예산 배열을 정렬해주고 0인덱스 부터 for문으로 더해주며, 예산을 넘어가면 이전의 부서 까지의 부서 수를 반환한다. for break를 이용해 효율성을 조금 더 높여준다. 내가 작성한 코드 function solution(d, budget) { d.sort((a, b) => a - b); let cnt = 0; let sum = 0; for(let i=0; i
문제 설명 제한 사항 문제 풀이 방법 이 문제는 유클리드 호제법을 이용해 최대 공약수를 구한 뒤 최소 공배수를 구하는 방식으로 풀었다. 간략하게 정리하면 a, b 두 수(a > b)를 나누고 나온 나머지가 0이 될 때 까지 진행하며, 나머지가 0이 될 때의 a가 두 수의 최대 공약수가 된다. 최소 공배수는 두 수를 곱한 값을 최대 공약수로 나눈 값이다. 내가 작성한 코드 const solution = (n, m) => { // 최대 공약수는 유클리드 호제법을 이용해 작성 const getGcd = (a, b) => a % b === 0 ? b : getGcd(b, a%b) const gcd = getGcd(n, m); // 최소 공배수는 위에서 구한 최대 공약수를 이용해 구할 수 있다. const get..
58청춘
'for문' 태그의 글 목록