본문 바로가기

전체 글540

[Baekjoon] 자바스크립트로 백준 세팅하기 코딩테스트 시작을 위한 여정 백준은 자바스크립트를 지원하지 않는다. node.js를 써야 하는데 문제의 입출력을 직접 해줘야 한다. vs code로 실행하려면 설정해줘야 한다. 문제 해결 node.js 설치하기 (vs code 테스트용) node.js를 다운받는다 : https://nodejs.org/ko/download/ VS code > 확장 프로그램 설치 > Code Runner 설치 테스트 코드로 잘 설치되었는지 확인! 참고: https://webnautes.tistory.com/1473 입출력을 위한 코드 작성하기 fs 방식과 readline 방식이 있다고 하는데, 나는 fs 방식으로 일단 해보기로 했다. const fs = require('fs'); let input = fs.readFileS.. 2023. 1. 12.
[JavaScript] Chapter 32. Clean Code 작성법 클린코드를 만드는 것은 개발할 때 중요하다. 왜냐하면 개발할 때 여러명의 개발자와 함께 협업하기 때문에 읽기 쉽고 유지보수 하기도 좋아야하기 때문이다. 1. 화살표함수로 function 축약하기 ES6의 가장 유명한 함수 표현 방법인 화살표함수다. 긴 기존의 함수호출 return 방식을 화살표 함수를 사용하면 역시 간결하고 보기 좋게 축약할 수 있다. 하지만 재사용은 불가능하기 때문에, 매번 새롭게 작성해줘야 한다. // 기존의 함수 function getSize(width, height) { return width * height }; // 화살표 함수 getSize = (width, height) => (width * height) 2. 삼항연산자 사용 이런 if, else문은 삼항연산자를 사용하면 .. 2023. 1. 12.
[JavaScript] Chapter 31. 배열을 다루는 메소드_map, flatMap, filter, reduce map map() 메소드는 새로운 배열을 리턴하는 메소드다. 어떻게? 순서대로 주어진 함수를 실행한 return 값을 모아서 새로운 배열을 만들어 반환한다. 그렇기 때문에 원본 배열을 변경하지 않고 새로 가공한 배열을 얻을 수 있다. const arr = [1, 2, 3, 4 ,5]; const mapArr = arr.map(v => v); map() 메소드에 들어가는 인자는 총 세가지이다. 현재 값 index 값 현재 요소가 속한 배열 하지만 인자 세개 모두 꼭 입력해야하는 것은 아니다. map() 메소드를 사용하면 작성해줘야할 조건이 많은 for문을 사용하지 않아도 되기 때문에 코드가 간결해진다. 간단하게 가공할 수 있는 콜백함수를 사용한다면 map() 메소드 안에서 화살표 함수로 작성해도 되지만, .. 2023. 1. 12.
[JavaScript] Chapter 30. for ...in, for ...of의 차이 결론부터 말하면 for...in은 객체의 반복에서 사용되고, for...of는 배열의 반복에서 사용된다. for …in 문 객체의 열거 가능한 '속성들'을 순회할 수 있도록 해줌 객체의 key값에 접근 가능, value값에는 직접 접근 불가 모든 객체에서 사용 가능 for ...in문은 객체의 모든 '열거할 수 있는 속성들'을 순회할 수 있도록 해준다. (keys는 열거 가능한 속성, valueOf는 열거 불가능한 속성) 그렇기 때문에 for ...in 문은 객체의 key 값에는 접근 가능하지만, value 값에 직접적으로 접근하는 방법은 제공하지 않는다. for ...in 문을 사용해 배열과 객체의 요소에 접근하는 예제를 살펴보자. 위에서 언급했듯이 key 값에만 접근이 가능하기 때문에, 배열에서는 i.. 2023. 1. 10.
[JavaScript] Chapter 29. Array map 값을 여러개 가지고 있는 배열에서 모든 값을 꺼내고자 할 때, 꺼내는 방법은 정말 다양하게 알려져 있다. 이러한 배열에서 값 꺼내는 방법 중 map( ) 을 다뤄보도록 하자. map 정의 Array.prototype.map ( callbackfn [ , thisArg ] ) 주로 주어진 배열의 값을 재정의 할 때, 사용하는 방법으로 ECMA에는 "주어진 배열의 값들을 오름차순으로 접근해 callbackfn을 통해 새로운 값을 정의하고 신규 배열을 만들어 반환한다"라고 정의되어있다. const numbers = [1, 2, 3, 4, 5]; const result = numbers.map(number => number * number); console.log(numbers); // [1, 2, 3, 4, .. 2023. 1. 10.
[JavaScript] Chapter 28. Array forEach forEach는 for문과 마찬가지로 반복적인 기능을 수행할 때 사용한다. 하지만 for문처럼 index와 조건식, increase를 정의하지 않아도 callback 함수를 통해 기능을 수행할 수 있다. [].forEach(callback, thisArg) const arr = [0,1,2,3,4,5,6,7,8,9,10]; arr.forEach(function(element){ console.log(element); // 0 1 2 3 4 5 6 7 8 9 10 }); // 혹은 arrow 함수 가능 arr.forEach(element => console.log(element)); arr 객체의 요소들이 callback 함수에 순서대로 호출되는 모습을 볼 수 있다. for문에 비해 좀 더 깔끔하고, 직관.. 2023. 1. 10.
[JavaScript] Chapter 27. {...} [...] 문법 (비구조화 할당/구조분해 할당) 자바스크립트의 문법에 대한 글을 검색하면 대부분 let, const 혹은 화살 함수(arrow function)에 대한 이야기가 주를 이룬다. 이번 시간에는 흔히 알려지지 않았지만 유용한 비구조화 할당 문법을 본다. 정의 모질라 문서에 의하면 '비구조화 할당(destructuring assignment) 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 자바스크립트 표현식(expression)' 이다. 간단하게 정리하면 배열 [], 혹은 객체 {} 안의 값을 편하게 꺼내 쓸 수 있는 문법이다. 기본 문법(배열) 배열에서의 적용은 아래와 같다 [a1, a2, ...rest_a] = [1, 2, 3, 4, 5, 6, 7, 8, 9]; console.log(a1); // 1 co.. 2023. 1. 10.
[Programmers] (2023 KAKAO BLIND RECRUITMENT) Lv 1. 개인정보 수집 유효기간 https://school.programmers.co.kr/learn/courses/30/lessons/150370?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(today, terms, privacies) { var answer = []; const [y, m, d] = today.split(".").map(Number); let db = {}; function cal(day, u) { const [y1, m1, d1] = day.split(".").map(Number); let a =.. 2023. 1. 10.
[Programmers] Lv 1. 가장 가까운 같은 글자 https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(s) { var answer = [-1]; for (let i = 1; i < s.length; ++i){ let index = s.lastIndexOf(s[i], i-1); if (-1 < index) index = i - index; answer.push(index); } return answer; } GitHub : https://github.com/deve.. 2023. 1. 9.
[Programmers] Lv 1. 크기가 작은 부분 문자열 https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(t, p) { var answer = 0; for (let i = 0; i 2023. 1. 9.