분류 전체보기
[JS] DeepDive(12) 함수
함수는 자바스크립트에서 가장 중요한 핵심 개념 중 하나이다. 자바스크립트의 핵심 개념들인 스코프,실행컨텍스트,클로저,생성자 함수에 의한 객체 새성 ,메서드 this , 프로토타입,모듈화 등등 모두 함수와 직간접적으로 관련이 있기 때문에 자바스크립트를 정확히 이해하고 사용하기 위해서는 함수에 대한 이해가 필수이다. 사실 프로그래밍 언어의 함수의 기본개념은 수학과 크게 다르지 않다. function add(x,y) { return x + y; } add(2,5) 함수에 대한 문법은 크게 설명하고 넘어가지는 않을 것 같다! 함수는 필요할 때 여러번 호출할 수 있고 몇번이고 호출할 수 있으므로 코드의 재사용 측면에서 아주 유용하다. 함수를 사용하지 않고 같은 코드를 중복해서 사용하면 그 코드를 반복해서 적어야 ..
[JS] 최댓값과 최솟값
split함수를 활용해서 공백으로 만든 이후, Math의 내장함수 min과 max를 활용해서 최소,최대 값을 빼내주었다. `` 를 활용해서 문자열을 만들어 반환해서 해결하였다. function solution(s) { const ary = s.split(" ") return `${Math.min(...ary)} ${Math.max(...ary)}` }
[JS] 최솟값 만들기
두배열 중 하나는 오름차순, 하나는 내림차순으로 정렬한 이후 인덱스대로 서로 곱해서 더해주면 최소값이 나온다. 수학적으로 이유는 잘 모르겠지만 예시 케이스들에서 규칙을 보고 해보니 정답이 적용이 되었다. function solution(A,B){ A.sort((a,b) => a-b) B.sort((a,b) => b-a) let ret = 0 for (let i = 0 ; i < A.length ; i++) { ret += A[i] * B[i] } return ret }
[JS] 전화번호 목록
접두사가 있는지 확인하기 위해서는 우선 전화번호부에 짧은 번호부터 등록되어 있어야 확인할 수 있다. 따라서 전화번호부를 길이순으로 정렬한 이후, 검사해주었다. function solution(phone_book) { phone_book.sort((a,b) => a.length-b.length) const map = new Map() for (const phone of phone_book){ let number = "" for (const n of phone){ number += n if (map.get(number)) return false } map.set(phone,true) } return true }
[JS] DeepDive(11) 원시 값과 객체의 비교
이전 "데이터 타입" 에 대해서 공부했었듯이 JS에서 제공하는 데이터 타입은 원시타입과 객체 타입으로 나누어져 있다. 이 두 타입을 비교하면서 한번 알아보자. 원시타입과 객체 타입은 크게 세가지 측면에서 다르다. 1. 원시 타입의 값, 즉 원시 값은 변경 불가능한 값이다. 이에비해 객체(참조) 타입의 값, 즉 객체는 변경 가능한 값이다. 2. 원시값을 변수에 할당하면 변수에는 실제 값이 저장되지만 객체를 변수에 저장하면 변수에는 참조값이 저장된다. 3. 원시값을 갖는 변수를 다른 변수에 할당하면 값에의한 전달 즉 깊은복사가 진행되지만 객체를 가리키는 변수를 할당하면 참조에 의한 전달 즉 얕은 복사가 진행되게 된다. 원시 값 원시 값은 변경 불가능한 값이다. 한번 생성된 원시값은 읽기 전용이란 말이다. 여..
[JS] 주식 가격
배열의 길이가 10만개나 되기 때문에 이중 반복문을 활용하면 시간초과가 걸릴 것 같은 문제였다. 처음에 조금 고민을 하다가. 결국 내려갔는지 올라갔는지 스택을 활용하면 조금 더 쉽게 판별할 수 있을거란 생각이 들었다. 반복문을 통해서 i가 시간이라고 생각을 했다. 만약 스택에 값을 집어넣어야할때 그당시의 i값을 같이 스택에 넣는다면, 이후에 값이 떨어졌다고 판단될때 의 i값과 스택에 넣었을때의 i값을 비교한다면 몇초만에 값이 떨어진지 확인할 수 있다. 또한 스택에 넣을때 i값을 기록하기에 정답 배열에 값을 넣는것도 수월했다. 미리 prices길이만큼 0으로찬 배열을 만들고 그 배열에서 값을 넣는식으로 식을 세웠다. function solution(prices) { const stk = [] const r..