all category

javascript

요약 정리는 못 참지 않을까요? (12) 이터러블

🙄이터러블? 이터레이션 프로토콜? ES6에서 도입된 이터레이션 프로토콜은 순회가능한 데이터 컬렉션을 만들기 위해 약속한 규칙입니다. ES6 이전에는 통일된 규약 없이 다양한 방법으로 순회할 수 있었지만 ES6에서는 이터레이션 프로토콜을 준수하는 이터러블로 통일하여 for...of 문, 스프레드 문법, 배열디스트럭처링 할당의 대상으로 사용할 수 있게 일원화 했습니다. 이 이터레이션 프로토콜에는 이터러블 프로토콜과 이터레이터 프로토콜이 있습니다. 이터레이션프로토콜 이터러블프로토콜 이터레이터프로토콜 for...of문으로 순회 가능 스프레드 문법 배열 디스트럭처링 할당 대상으로 사용가능 이터레이터는 이터러블의 요 소를 탐색하기 위한 포인터 역할을 합니다. 🙄for of 문? for in 문? for of 문과 ..

javascript

요약 정리는 못 참지 않을까요? (11) RegExp

🙄정규표현식이 뭔가요? 정규표현식(regular expression)은 일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어(formal language)입니다. 정규표현식은 문자열을 대상으로 패턴 매칭 기능을 제공합니다. 정규표현식을 사용하면 반복문과 조건문 없이 패턴을 정의하고 테스트할 수 있습니다. 하지만 가독성이 좋지 않다는 문제도 있어요 🙄정규표현식의 생성 /regexp/i / regexp / i 시작기호 패턴 종료기호 플래그 시작기호 , 패턴 , 종료기호 ,플래그로 이루어집니다. 🙄RegExp 플래그 플래그는 정규 표현식의 검색 방식을 설정하기 위해서 사용합니다. 플래그 의미 설명 i Ignore Case 대소문자를 구별하지 않고 패턴을 검색한다. g Global 대상 문자열 ..

javascript

요약 정리는 못 참지 않을까요? (10) 배열

🙄배열이란? 배열은 여러개의 값을 순차적으로 나열한 자료구조입니다. 배열이 가지고 있는 값을 요소(element)라고 부르며 자바스크립트의 모든 값은 배열의 요소가 될 수 있습니다. 배열은 자신의 위치를 나타내는 정수 index를 가지며 보통 index는 0부터 시작합니다. 🙄배열은 객체지만 일반 객체와 구별된다. 구분 객체 배열 구조 프로퍼티 키와 프로퍼티 값 인덱스와 요소 값의 참조 프로퍼티 키 인덱스 값의 순서 X O length property X O 🙄자바스크립트의 배열은 배열이 아니다? 자료구조에서 말하는 배열은 동일한 크기의 메모리 공간이 빈틈없이 연속적으로 나열된 자료구조이며 배열의 요소는 하나의 데이터 타입으로 통일되어 있고 서로 연속적으로 인접해있습니다. 이러한 배열을 밀집 배열이라고 ..

leetcode

561. Array Partition Javascript

⚡문제정보 두 값의 조합 중 작은 값을 모아서 합계를 내는데 최대한 높은 값을 만들어야 하는 문제입니다. easy 문제니까 감이 오시겠지만 이거 오름차순 정렬해놓으면 끝임 🔍나의 풀이 var arrayPairSum = function(nums) { let answer = 0 nums.sort((a,b) => a - b) for(i=0 ; i< nums.length ; i += 2) { answer += nums[i] } return answer }; 정렬해주고 i를 2씩 증가시켜주면서 answer에 nums[i]를 누적해줍니다. 끝

leetcode

452. Minimum Number of Arrows to Burst Balloons Javascript

⚡문제정보 그림이 있었으면 아주 쉽게 이해가 될텐데 x축 y축 소리 때문에 오히려 한번에 이해가 안되었던 문제 그러니까 저 배열안에 담긴 두 숫자는 x 축의 선분이라고 생각하면 되고 화살을 이런식으로 쏠 수 있는데 최소한으로 화살을 쏴서 모든 풍선을 터치고 싶다.라는 내용입니다. 🔍접근방법 끝 선분을 기준으로 오름차순 정렬해준 다음 비교해주면 끝 🔍나의 풀이 var findMinArrowShots = function(points) { let answer = 1 points.sort((a,b) => { return a[1] - b[1] }) let pointer = points[0][1] for(i=1 ; i= points[i][0]) continue else { pointer = points[i][1] ..

leetcode

179. Largest Number Javascript

⚡문제정보 sort를 잘 활용하면 풀 수 있을 문제같아 보이는데 sort가 제 마음대로 잘.. 동작을 안해서 조금 참고를 통해 풀었습니다. 🔍나의 풀이 var largestNumber = function(nums) { if(!nums.filter(ele => ele != 0).length) return '0' nums.sort( (a,b) => { let as = a.toString() let bs = b.toString() return parseInt(as + bs) > parseInt(bs + as) ? -1 : 1 }) return nums.join('') }; 만약 모든 요소가 0인 경우엔 '0'을 리턴해줍니다. 그렇지않으면 [0,0]같은 케이스에서 '00'이 리턴되기때문이에요 nums를 sort..

leetcode

334. Increasing Triplet Subsequenc

⚡문제정보 i < j < k 가 성립해야하는데 꼭 순서대로 성립하지 않아도 괜찮습니다. 즉 좀 띄엄띄엄있어도 i < j < k이기만 하면 true를 반환하는 조건입니다. 예컨대 아래 배열같은 경우 true를 반환해야할것입니다. [ 10 , 2 , 12 , 5 , 3 , 8 ] 🔍접근방법 그리디 알고리즘을 통해 O(n)으로 해결할 수 있을 것 같습니다. 예를 들어 가장 작은 값과 가장 작은 값보다 큰 값을 정해준뒤 nums[i]를 계속 업데이트해주면서 나아가는거죠! 🔍나의 풀이 var increasingTriplet = function(nums) { let Max1 = Infinity let Max2 = Infinity for(i=0 ; i< nums.length; i++) { if(Max1 < Max2 ..

javascript

요약 정리는 못 참지 않을까요? (9) ES6 함수의 추가 기능

🙄 함수의 구분 ES6 이전의 모든 함수는 일반함수로서 호출 할 수 있는 것은 물론 생성자 함수로서 호출할 수 있었습니다, 즉 모든 함수가 callable 하면서 constructor였습니다. 이런 경우 객체에 바인딩 된 함수를 생성자 함수로 호출할 수도 있고 콜백 함수도 생성자 함수로 만들수도 있는 등 함수의 사용 목적에 따른 구분이 없다보니 실수를 유발할 수 있고 성능에도 좋지 않았습니다. 따라서 ES6에서는 함수의 사용 목적에 따라 세가지 종류로 구분했습니다. ES6 함수의 구분 constructor prototype super arguments 일반 함수(normal) O O X O 메서드(method) X X O O 화살표 함수(Arrow) X X X X ** ES6사양에서 메서드는 메서드 축약..

냠냠맨
'분류 전체보기' 카테고리의 글 목록 (37 Page)