🌴 문제 문자열을 입력받아 문자열에서 숫자를 모두 찾아 더한 뒤에 해당 값을 (숫자와 공백을 제외한 나머지) 문자열의 길이로 나눈 값을 정수로 반올림하여 리턴해야 합니다. 🌴 주의 사항 문자열을 입력받은 경우, 0을 리턴해야 합니다. (digit)는 연속해서 등장하지 않습니다. 🌴 입출력 예시 let output = numberSearch('Hello6 '); console.log(output); // --> 1 output = numberSearch('Hello6 9World 2,'); console.log(output); // --> 2 output = numberSearch('Hello6 9World 2, Nic8e D7ay!'); console.log(o..
HTTP는 자바스크립트에서 HTTP 서버 빛 클라이언트 응용 프로그램을 만드는 데 사용할 수 있는 Node.js모듈이다. HTTP 내장 모듈을 사용하면, Node.js가 HTTP를 통해 데이터를 전송할 수 있다. 🔵 createServer()메서드를 사용하여 HTTP 서버를 만든다. const http = require('http'); //create a server object: const server = http.createServer((req, res) => { req.on('data', (chunk)=>{ console.log(chunk) }).on('end', ()=>{ res.writeHead(201, {'Content-Type' : 'text/plain'}) }) res.writeHead(2..
🌴 문제 문자열을 입력받아 아이소그램인지 여부를 리턴해야 합니다. 아이소그램(isogram)은 각 알파벳을 한번씩만 이용해서 만든 단어나 문구를 말합니다. 🌴 출력 문자열을 입력받아 아이소그램인지 여부를 리턴해야 합니다. 아이소그램(isogram)은 각 알파벳을 한번씩만 이용해서 만든 단어나 문구를 말합니다. 🌴 주의 사항 빈 문자열을 입력받은 경우, true를 리턴해야 합니다. 대소문자는 구별하지 않습니다. 🌴 입출력 예시 let output = isIsogram('aba'); console.log(output); // false output = isIsogram('Dermatoglyphics'); console.log(output); // true output = isIsogram('moOse'); ..
🌴 문제 두 수(num1, num2)를 입력받아, num1를 num2로 나눈 나머지를 리턴해야 합니다. 🌴 출력 number 타입을 리턴해야 합니다. 🌴 주의 사항 나눗셈(/), 나머지(%) 연산자 사용은 금지됩니다. 0은 어떤 수로 나누어도 나머지가 0입니다. 어떤 수도 0으로 나눌 수 없습니다. 이 경우 'Error: cannot divide by zero'를 리턴해야 합니다. 🌴 입출력 예시 let output = modulo(25, 4); console.log(output); // --> 1 🌴 문제 풀이 function modulo(num1, num2) { // TODO: 여기에 코드를 작성합니다. // 나누기는 빼기를 반복 // num1-num2를 반복해서 실행 if(num2 === 0) re..
🌴 문제 수를 요소로 갖는 배열을 입력받아 각 요소들이 그 이전의 요소들의 합보다 큰지 여부를 리턴해야 합니다. 🌴 출력 boolean 타입을 리턴해야 합니다. arr[i]는 arr[0]부터 arr[i-1]까지의 합보다 커야 합니다. 🌴 입출력 예시 let output = superIncreasing([1, 3, 6, 13, 54]); console.log(output); // --> true output = superIncreasing([1, 3, 5, 9]); console.log(output); // --> false 🌴 문제 풀이 function superIncreasing(arr) { // TODO: 여기에 코드를 작성합니다. // 각 요소들이 그 이전의 요소들의 합보다 큰지 여부를 리턴 let..
🌴 문제 문자열을 요소로 갖는 배열을 입력받아 문자열을 세로로 읽었을 때의 문자열을 리턴해야 합니다. 🌴 출력 string 타입을 리턴해야 합니다. 🌴 주의사항 각 문자열의 길이는 다양합니다. 각 문자의 위치를 행, 열로 나타낼 경우, 비어있는 (행, 열)은 무시합니다. 🌴 입출력 예시 let input = [ // 'hello', 'wolrd', ]; let output = readVertically(input); console.log(output); // --> 'hweolllrod' input = [ // 'hi', 'wolrd', ]; output = readVertically(input); console.log(output); // --> 'hwiolrd' 🌴 문제 풀이 function read..
🌴 문제 2차원 배열(배열을 요소로 갖는 배열)을 입력받아 'B'의 위치 정보를 요소로 갖는 배열을 리턴해야 합니다. 🌴 출력 'B'의 위치 정보(행, 열)를 요소로 갖는 배열을 리턴해야 합니다. 배열의 요소는 차례대로 행, 열입니다. ([행, 열]) 행: 'B'를 요소로 갖는 배열 arr[i]의 인덱스 i 열: arr[i]에서 'B'(arr[i][j])의 인덱스 j 🌴 주의사항 arr, arr[i]의 길이는 다양하게 주어집니다. 항상 한 개의 문자열 'B'가 존재합니다. 🌴 입출력 예시 let output = findBugInApples([['A'], ['B']]); console.log(output); //[1, 0] output = findBugInApples([ ['A', 'A', 'A', 'A'..
🌴 Client Server Architecture 클라이언트-서버 아키텍처, 다른 말로는 2티어 아키텍처라고 불리는 설계방식 서버(server)는 영어 단어 그대로 제공(serv)하는 주체이다. 상품 정보 같은 리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 것을 2티어 아키텍처, 또는 클라이언트-서버 아키텍처라고 부른다. 리소스를 이용하는 앱이 바로 '클라이언트', 리소스를 제공(serve)하는 곳은 '서버'라고 부른다. 리소스에 접근하는 앱은 마치 손님(Client)과 같아서, 리소스를 가지고 있는 점원(Server)에게 물품을 요청해야 한다. 그리고 요청에 따라, 점원(Server)은 리소스를 담아 응답해야 한다. 이처럼 클라이언트와 서버는 요청과 응답을 주고 받는 관계이다. 클라이언트-서..
🌳 Tweet 버튼을 사용하여 작성된 글을 Tweeter의 가장 상단에 올리기 가장 먼저 생각해봐야 하는 것은 Tweet버튼을 클릭했을 때, input과 textarea에 작성된 내용을 받는 방법이다. 이때 onClick 이벤트 처리 방식을 사용하여 새로운 데이터 객체를 만들어준 후, dummy data의 가장 앞부분에 넣어준다. const handleButtonClick = () => { const getRandomNumber = (min, max) => { return parseInt(Math.random() * (Number(max) - Number(min) + 2)); }; const tweet = { id: users.length+1, username: userName, picture: `htt..