목록분류 전체보기 (178)
한 걸음씩 기록하며
[없는 숫자 더하기] 문제 설명 : 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. ⛏제한 조건 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 수 ≤ 9 numbers의 모든 수는 서로 다릅니다. 📁 입출력 예시 👉🏻 답안 1) for문으로 직접적으로 대조하여 answer에 값 더하기 function solution(numbers) { let answer = 0; for (let i = 0; i < 10; i++) { // for문으로 0~10까지 반복하고 if (!numbers.includes(i)) { // 배열 ..
[두 정수 사이의 합] 문제 설명 : 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. ⛏제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 📁 입출력 예시 👉🏻 답안 function solution(a, b) { let sum = 0; if (a > b) { for (let i = b; i
[가운데 글자 가져오기] 문제 설명 : 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. ⛏제한 조건 s는 길이가 1 이상, 100이하인 스트링입니다. 📁 입출력 예시 👉🏻 답안 function solution(s) { let midOfStr = Math.ceil(s.length/2) return s.substr( midOfStr -1,( s.length % 2 === 0 ? 2 : 1)) } 📑 간단한 설명 Math.ceil 은 올림하는 함수다. 먼저 홀수든 짝수든 같은 midOfStr로 동일한 중간 값을 구했다. .substr(인덱스, 길이) 은 문자열을 자르는 함수다. 인덱스는 midOfStr-1로 고정하고, 삼항 연..
[직사각형 별찍기] 문제 설명 : 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. ⛏제한 조건 n과 m은 각각 1000 이하인 자연수입니다. 📁 입출력 예시 👉🏻 답안 process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const n = data.split(" "); const a = Number(n[0]), b = Number(n[1]); for ( let i = 0; i < b; i++ ) { for ( let j = 0; j < a; j++ ) { process.stdout.write('*'); } console.log..
[짝수와 홀수] 문제 설명 : 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. ⛏제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 📁 입출력 예시 👉🏻 답안 function solution(num) { return num % 2 === 0 ? "Even" : "Odd"} 📑 간단한 설명 기초 if문으로만 작성한다면 아마 다음과 같이 작성할 수 있다. function solution(num) { let answer; if (num % 2 === 0) { answer = "Even"; } else { answer = "Odd"; } return answer; } console.log(solution(4)); 그러나 이 ..
*Async & Await promise를 통해서 비동기적으로 처리하게되면 코드가 복잡해질 수 있는데, Async와 Await를 활용하면 promise를 간결하고 간편하고 동기적으로 실행하는 것처럼 보이게 한다 (syntactic sugar) 그렇다고 promise가 나쁘고 꼭 대체해야 되는 것은 아니다. promise를 유지해야 맞는 경우가 있고 async& await으로 바꿔줘야 하는 경우가 있다. 1. Async 동기 처리의 한계 function fetchUser(){ // do network request in 10 secs... return 'haksae'; } const user = fetchUser(); console.log(user); 이런 코드는 10초 정도 유저가 텅 빈 브라우저를 보기..
* Promise promise : JS에서 제공하는 비동기를 간편하게 처리할 수 있는 object 비동기적인 것을 수행할 때 콜백함수 대신에 유용하게 쓸 수 있는 오브젝트 정해진 장시간의 기능을 수행하고나서 정상적으로 기능이 수행되어졌다면 성공의 메시지와 함꼐 처리된 결과 값을 전달, 기능을 수행하다가 문제가 발생했다면 에러를 전달해줌 * promise 중요포인트 2가지 1. State 기능 수행이 성공했는지 실패했는지 이런 상태에 대한 이해 중요 2. Producing vs Consumer producing : 우리가 원하는 데이터를 제공하는 사람 consumer : 데이터를 필요로 하는 사람 1. Producer promise를 만드는 순간 executor라는 콜백 함수가 바로 실행됨 유의 : 사용..
1. Synchronous(동기) vs Asynchronous(비동기) 자바스크립트는 동기적인 언어이다. 호이스팅이 된 이후부터 코드가 작성한 순서에 맞춰서 하나씩 동기적으로 실행된다. hoisting (호이스팅) : var 변수와 함수선언(function declaration)들이 자동적으로 제일 위로 올라가는 것 비동기 : 비동기적으로 언제 코드가 실행될지 예측할 수 없는 것을 뜻함 console.log('1'); // 동기적으로 처리 setTimeout(()=> console.log('2'), 1000); // 비동기적으로 처리 console.log('3'); 2. callback function 자바스크립트는 함수를 콜백형태로 파라미터로 다른 함수에 전달할 수도 있고, 변수에 할당할 수도 있는 언..