분류 전체보기
![[자바스크립트] 중복 기능의 불필요한 함수](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNqsib%2FbtrDEAaZBmn%2FWvikrLod9zeNzHZ9uGa9dK%2Fimg.png)
[자바스크립트] 중복 기능의 불필요한 함수
불필요한 함수 인수로 전달받은 문자열을 반환하는 함수를 반환하는 함수를 만드시오.(함수의 반환은 문자열이 아닌 함수여야 한다.) 예시 const f1 = redundant("apple") f1() ➞ "apple" const f2 = redundant("pear") f2() ➞ "pear" const f3 = redundant("") f3() ➞ "" 시도 해결 코드 1 const redundant = function(str) { return function() { return str; } }; 반환하는 함수는 일종의 콜백 함수로, 호출됨으로써 가치를 다 하는 일반적인 함수와는 달리 인수로 넘겨지거나 반환값으로 사용된다. 매개변수를 지정하지 않았다. 매개변수를 지정하면 undefined가 나온다. 해결 ..
![[자바스크립트] 배열 내 참의 개수 구하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1zzXt%2FbtrDy1uPlfr%2FRFeauYtlIDrqdMueLsQkv1%2Fimg.png)
[자바스크립트] 배열 내 참의 개수 구하기
참은 몇 개인가? 배열에 있는 참 값의 수를 반환하는 함수를 만드시오. 예시 countTrue([true, false, false, true, false]) ➞ 2 countTrue([false, false, false, false]) ➞ 0 countTrue([]) ➞ 0 시도 해결 코드 1 for문 const countTrue = function(arr) { let count = 0; for (let i=0; i arr.filter(v=>v===true).length; 배열 고차 함수를 사용하였다. true인 요소만 반환되어 만들어진 새로운 배열의 length 프로퍼티로 참의 개수를 반환하게끔 하였다. 해결 코드3 filter(boolean) const countTrue = arr => arr.fil..
![[자바스크립트] 성냥개비 하우스 문제](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcic0v7%2FbtrCXSXxS0d%2FC7FG9urXkbUrnmjbw9tPY1%2Fimg.png)
[자바스크립트] 성냥개비 하우스 문제
성냥개비 하우스 문제 성냥개비 하우스의 수학적 관계를 대수적으로, 그리고 기하학적으로 해석하여 인수로 단계를 받아서 해당 단계의 성냥개비 수를 반환하는 함수를 만드시오. 예시 단, 인수로 0을 받을 시, 0을 반환해야 한다. matchHouses(1) ➞ 6 matchHouses(4) ➞ 21 matchHouses(87) ➞ 436 시도 맞은 코드 패턴 파악 → 삼항 조건 연산자를 통한 예외 처리 const matchHouses = step => !step ? 0 : 6 + (step-1)*5; 1단계 : 6개 2단계 : 6개 + 5개 3단계 : 6개 + 5개 + 5개 처음만 6개이고, 이후에는 단계수-1*5개만큼 증가하는 패턴을 확인할 수 있다. 0단계라는 예외는 삼항 조건 연산자를 사용하여 처리하고,..
![[자바스크립트] 입력받은 정수까지의 합 구하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcMr5F%2FbtrCWRSqE8x%2FxrhinoBUgKgDKF2nUlkA8K%2Fimg.png)
[자바스크립트] 입력받은 정수까지의 합 구하기
입력받은 정수까지의 합 구하기 1부터 입력받은 정수까지의 합을 구하는 함수를 작성하시오 예시 addUp(4) ➞ 10 addUp(13) ➞ 91 addUp(600) ➞ 180300 시도 틀린 코드 const addUp = num => num.reduce((pre,cur) => pre+cur); 인수를 배열로 착각해버렸... 해결 맞은 코드 1 function addUp(num) { let sum = 0; for (let i = 1; i n * ++n / 2; 유명한 가우스의 덧셈알고리즘 : 1부터 n까지의 합 === (n + (n+1)) / 2 임을 이용하였다. 맞은 코드3 const addUp = num => (!num) ? 0 : num + addUp(num-1); 재귀 함수를 사용하였다. 인수로 들..
![[자바스크립트] 배열의 최솟값과 최댓값 찾기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6T31V%2FbtrCS1u8LSh%2FmaNRC7aKbBdV1M6qn5M0Lk%2Fimg.png)
[자바스크립트] 배열의 최솟값과 최댓값 찾기
배열의 최솟값과 최댓값 찾기 숫자 배열을 인수로 받아 최소 및 최대 값을 순서대로 반환하는 함수를 만드시오 예시 minMax([1, 2, 3, 4, 5]) ➞ [1, 5] minMax([2334454, 5]) ➞ [5, 2334454] minMax([1]) ➞ [1, 1] 시도 틀린 코드 1 변수의 스코프 에 대한 이해 부족 const minMax = function(arr) { for(let i=0;iarr[i+1]) max=arr[i]; if (arr[i]
![[자바스크립트] 비트 연산기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAHKJT%2FbtrCVe8zqW9%2FzGACZ2MISTkXOEkKc3L311%2Fimg.png)
[자바스크립트] 비트 연산기
비트 연산기 AND, OR, XOR 비트 연산을 하는 함수를 만드시오 예시 bitwiseAND(7, 12) ➞ 4 bitwiseOR(7, 12) ➞ 15 bitwiseXOR(7, 12) ➞ 11 시도 틀린 코드 비트 연산자에 대한 이해 부족 // AND const bitwiseAND = (n1, n2) => parseInt(n1.toString(2) & n2.toSting(2),2) // OR const bitwiseOR = (n1, n2) => parseInt(n1.toString(2) | n2.toSting(2),2) // XOR const bitwiseXOR = (n1, n2) => parseInt(n1.toString(2) ^ n2.toSting(2),2) n1&n2 값을 2진수로 변환(toStr..
![[네트워크] TCP/IP 5계층](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbg3vx4%2FbtrCXks99OI%2FbGwY1GmIUT2S1uCWjAOK6k%2Fimg.png)
[네트워크] TCP/IP 5계층
네트워크 모델의 기본인 TCP/IP Protocol Suite에 대해 알아보자. 프로토콜 계층화 프로토콜 계층화를 공부하기에 앞서, 프로토콜이 무엇인지부터 설명하겠다. 프로토콜이란? 송신자와 수신자, 그리고 중간의 모든 장치들이 효과적으로 통신을 할 수 있도록 따라야만 하는 규칙을 정리한 것. 문서 10개를 정리한다면 규칙이 필요 없겠지만, 100,000,000개를 정리한다면 본인만의 규칙이 있는 경우가 훨씬 처리가 빠를 것이다. 우리는 복잡해지는 통신을 위해서 프로토콜을 준수할 필요가 있다. 프로토콜 계층화의 필요성 통신이 단순하다면, 프로토콜은 하나로도 충분하다. 그러나 우리가 일상생활에서 하는 통신은 단순하지 않으며, 복잡하다. 예를 들어, 누군가가 "안녕!"이라고 인사한다면, 그 짧은 목소리에 다..
![[자바스크립트] 값과 표현식, 문](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXc6tf%2FbtrCQwI5ZR9%2FKq7LSNkxFDvVIQ2oL9vONk%2Fimg.png)
[자바스크립트] 값과 표현식, 문
코딩을 하다 보면 값, 표현식, 문이라는 용어가 자주 나온다. 이들의 정의가 정확히 무엇이고 어떻게 구분하는지 알아보자. 값(Value) 표현식이 평가되어 생성된 결과 10+20은 표현식인 문이며, 평가되어 30이라는 값을 생성한다. 모든 값은 데이터 타입을 가지며, 위 예제는 원시 타입의 값(숫자)이다. 리터럴(literal) 사람이 이해할 수 있는 문자로 값을 생성하는 표기법 값을 생성하는 가장 간단한 표기법이다. 위 예제에서 3은 아라비아 숫자 3이 아니라 리터럴 3이며 표현식으로써 평가되어 값 3을 생성한다. 표현식 값으로 평가될 수 있는 문 값으로 평가되어 새로운 값을 생성하거나 참조하는 문. 값처럼 사용할 수 있기 때문에 변수에 할당하거나 인수로 전달할 수 있다. 문 프로그램의 최소 실행 단위..