분류 전체보기
[JAVASCRIPT] 백준 1212번 문제 풀이
❗ 풀이 const input = require('fs').readFileSync('dev/stdin').toString().trim(); let answer = ''; answer = input[0] === '0' ? '0' : parseInt(input[0], 8).toString(2); for (let i = 1; i < input.length; i++) { const binaryDigit = parseInt(input[i], 8).toString(2).padStart(3, '0'); answer += binaryDigit; } console.log(answer); 입력받은 8진수를 이진 표현으로 저장하는 변수 answer 정의 첫 번째 문자가 '0'인지 확인 후 참이라면 변수를 '0' 저장, 거짓..
[JAVASCRIPT] 백준 10798번 문제 풀이
❗ 풀이 let input = require('fs').readFileSync('dev/stdin') .toString() .trim() .split('\n').map(str => str.replace(/\r/g, '')); let maxLength = Math.max(...input.map(i => i.length)); let result = []; for (i = 0; i < maxLength; i++) { for (j = 0; j < input.length; j++) { input[j][i] === undefined ? null : result.push(input[j][i]); } } console.log(result.join('')); 1. Math.max()와 map을 통해 배열 내 문자열 중 ..
[JAVASCRIPT] 백준 1026번 문제 풀이
❗ 풀이 let input = require('fs').readFileSync('dev/stdin').toString().trim().split('\n'); const n = parseInt(input[0]); const a = input[1].split(' ').map(Number); const b = input[2].split(' ').map(Number); let sum = 0; a.sort((x, y) => x - y); b.sort((x, y) => y - x); for (let i = 0; i < n; i++) { sum += a[i] * b[i]; } console.log(sum); 1. 첫 번째 줄에 있는 정수값을 n에 저장 2. 두 번째와 세 번째 줄에 있는 문자열을 공백으로 구분하여 숫..
[자바스크립트 / Vanilla JS] 클로저 함수(Closure function)란 ?
❗ 클로저 함수란 ? 클로저 함수(Closure function)란, 자신이 생성될 때의 환경을 기억하고 이 환경에서 생성될 때의 데이터를 계속 유지하는 함수를 말한다. 이는 자바스크립트에서 함수가 일급 객체(first-class object)이기 때문에 가능합니다. 클로저 함수는 외부 함수 안에 내부 함수를 정의하고, 내부 함수가 외부 함수의 지역 변수를 참조하거나 외부 함수의 매개변수를 활용하는 경우에 생성된다. 이때 외부 함수가 실행을 마치고 반환되어도, 내부 함수가 이용하는 외부 함수의 지역 변수나 매개변수는 메모리에 유지된다. 클로저 함수를 사용하면, 내부 함수에서 외부 함수의 지역 변수에 접근하여 이용할 수 있으므로, 정보의 은닉, 캡슐화, 함수 팩토리 등의 다양한 디자인 패턴을 구현할 수 있..
[React.js] axios interceptor로 axios header에 토큰 삽입하기
❓ axios interceptor axios interceptor는 애플리케이션에서 처리하기 전에 Axios 라이브러리에서 수행한 HTTP 요청 또는 응답을 가로채고 수정하는 데 사용할 수 있는 기능이다. 요청에 인증 헤더 추가, 오류 처리 또는 요청 및 응답 로깅과 같은 다양한 용도로 사용할 수 있다. interceptor는 전역적으로 Axios 인스턴스에 추가하거나 개별 요청 또는 응답에 추가할 수 있다. ❗ axios interceptor 써야하는 이유 헤더 수정, 인증 토큰 추가, 오류 처리, 요청 및 응답 기록 등을 할 수 있다. 모든 요청 또는 응답에서 동일한 코드를 반복하지 않아도 되어서 코드가 더 간결해지고 유지 관리가 쉬워진다. 애플리케이션에서 요청 및 응답이 처리되는 방식을 표준화하는..
[React.js] 커스텀 훅(Custom Hook)과 유틸 함수(util function)에 대해서
❗ 커스텀 훅(Custom Hook) React에서 커스텀 훅(Custom Hook)은 상태 로직(stateful logic)을 재사용할 수 있도록 하는 기능이다. 이는 여러 컴포넌트에서 공통적으로 사용되는 상태 로직을 추출하여 하나의 함수로 만들어 사용할 수 있도록 한다. 커스텀 훅은 보통 use라는 접두사를 사용하여 함수의 이름을 정의하며, React의 기본 훅(useState, useEffect 등)을 이용하여 구현된다. 또한 JSX 코드나 렌더링과 관련된 코드를 포함해서는 안 되며, 컴포넌트 내부나 외부에서 호출하여 사용한다. 커스텀 훅을 사용하면 코드의 중복을 줄이고, 컴포넌트의 재사용성과 유지보수성을 높일 수 있다. 예를 들어, API 호출, 폼 데이터 관리, 타이머/애니메이션 등의 다양한 기..
[자바스크립트 / Vanilla JS] some()과 includes()의 차이점
includes() 및 some() 메서드는 배열에서 특정 요소를 검색하는 데 사용된다. 그러나 이 두 가지 방법에는 몇 가지 차이점이 있다. ❗ includes() 배열에 특정 요소가 포함되어 있는지 여부를 나타내는 boolean 값을 반환한다. 기본 값과 기본 값이 아닌 값 모두와 함께 사용할 수 있다. 찾은 요소의 인덱스에 대한 액세스를 제공하지 않는다. 배열을 수정할 수 있는 수단을 제공하지 않는다. 더 간단하고 읽기 쉽다. const fruits = ['apple', 'banana', 'orange']; console.log(fruits.includes('apple')); // true console.log(fruits.includes('pear')); // false ✔ include() 예시..
[JAVASCRIPT] 백준 1120번 문제 풀이
❗ 풀이 let [X,Y] = require('fs').readFileSync('dev/stdin').toString().trim().split(" "); let min = Y.length; for (let i = 0; i 길이 차이는 1이 나므로 2번만 반복하면됨 X[0] = a / Y[0] = a , X[1] = b / Y[1] = b , X[2] = c / Y[2] = c 를 하나하나 탐색하며 비교 -> 차이값은 0 다음으로는 abcd를 0,1,2번 인덱스 값을 탐색하였으니 1,2,3번을 탐색함 X[0] = a / Y[1] = b , X[1] = b / Y[2] = c , X[2] = c / Y[3] = d 를 하나하나 탐색하며 비교 -> 차이값은 3 반복문이 끝났을 때 0과 3을 비교했을 때 작은..