### Math
Math.min(a, b)
: a, b 중 더 작은 값 리턴
Math.max(a, b)
: a, b 중 더 큰 값 리턴
Math.ceil(a)
: 올림함수 ex) Math.ceil(3.1)=4
Math.floor(a)
: 내림함수 ex) Math.floor(3.7)=3
Math.round(a)
: 반올림(반내림)함수 ex) Math.round(3.1)=3 / Math.round(3.7)=4
Math.sqrt(a)
: 제곱근 함수 ex) Math.sqrt(121)=11 (11^2=121)
String.replace(/A/g, '#')
: s 문자열에서 "A"( /A/ )를 모두( g(global) ) 찾아, "#"( '#' )으로 바꿔라 (https://regexr.com/)
String.split('R')
: s 문자열에서 구분자 'R'을 기준으로 문자열 str이 나누어진다. 그리고 배열로 만든다.
만약, 아래 문자열을 s라고 했을 때 s.split('R').length=6이다. 즉 R구분자로 인해 6개의 덩어리가 생긴다. 구분자 좌우로 덩어리가 생긴다고 생각하자!
결국, s.split('R').length===구분자('R')의 갯수+1이다. 이를 기억하고 문제에 활용할 수 있다.
String.toUpperCase()
: string 문자열을 대문자로 변환
String.toLowerCase()
: string 문자열을 소문자로 변환
String.charCodeAt()
: string의 아스키코드를 리턴한다.
대문자의 아스키코드: 65~90(26개)
소문자의 아스키코드: 97~122(26개)
이다. 이들사이의 차이는 32이다. 만약, 대문자->소문자로 변환하고 싶다면 +32를하면 된다. 반대로 소문자->대문자로 변환하고 싶다면 -32를 하면 된다.
만약, String.charCodeAt(i)
와같이 쓰면, string의 i번째 인덱스의 아스키를 리턴한다.
String.fromCharCode(num-32)
: (num-32) 아스키코드를 문자(String)으로 변환한다. 즉, num이 소문자일 때 num-32를 통해 대문자로 변환할 수 있다.
String.slice(i, j)
: i번째 인덱스부터 j번째 인덱스 '전'까지(substring과 같음)
String.slice(0, -1)
은 가장 마지막 문자 제거
String.substring(i, j)
: i번째 인덱스부터 j번째 인덱스 '전'까지(slice와 같음)
ex) s="STUDY"일 때, s.substring(2, 3)은 2번째 인덱스부터 3번째 인덱스 전까지이기 때문에 2번째 인덱스만 채택해서 "u"이다.
즉, s.substring(i, i+1)은 i번째 인덱스 요소만 선택한다.
배열에서는 slice를 사용한다.(string에서도 slice 사용)
String.substr(x,y)
: string문자열에서 x번째 인덱스부터 y개 뽑아내는 함수이다. String.substring(i, j)
와 헷갈리지 않도록 주의!
String.indexOf('k')=0
: (string="ksekkset"이라고 가정)'k'문자가 '처음'으로 발견되는 인덱스를 리턴한다.
String.indexOf('k', 1)=3
: 1번째 인덱스이후 'k'문자가 있는 인덱스
String.indexOf(문자)=-1
이면, 문자를 문자열에서 발견하지 못한 경우이다. 즉 문자가 문자열에 없을 때 -1을 리턴한다.
String.trim()
: string 문자열의 양끝 공백 제거
Sting.split('').reverse().join('')
: string을 ''으로 나누어 배열로 만들고, 그 배열을 뒤집어서, ''로 합쳐서 문자열로 다시 만든다. (3-1, 3-2예제)
String.toLowerCase().replace(/[^a-z]/g, '')
: string 문자열을 소문자로 바꾸고, 그 문자열에서 a-z가 아닌 모든 것들을 ''로 대체하라
parseInt(String, radix)
: String문자열을 radix(2-36)진법으로 변환한다. 만약 radix가 없을 때, String이 0으로 시작한다면 radix는 8진이거나 10진이다.
Array.splice(i, 1)
: 배열 arr에서 i번째 인덱스 요소를 1개 삭제
splice()의 반환값은 제거한 요소를 담은 배열이다.
또한, Array.splice(i, 1, replace)는 i번째 인덱스요소부터 한개를 replace로 대체한다는 뜻이다. (mdn 참고)
realReserve.splice(realReserve.indexOf(x+1), 1);
만 해도 원하는 요소가 삭제된다. 만약, const a=realReserve.splice(realReserve.indexOf(x+1), 1);
와 같이 한다면 삭제된 요소가 a에 담겨서 반환된다.
Array.filter(콜백함수)
: 주어진 함수의 테스트를 통과하는 모든 요소를 필터링해서 새로운 배열로 반환합니다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
Array.forEach(콜백함수)
: 주어진 함수를 array의 각 요소에게 실행 및 적용한다
https://www.w3schools.com/jsref/jsref_foreach.asp
Array.map(콜백함수)
: 주어진 함수를 array의 각 요소에게 실행하여, 함수의 결과로 새로운 배열을 만든다
https://www.w3schools.com/jsref/jsref_map.asp
Array.reduce(콜백함수)
:
arr.reduce((a, b)=>a+b, 0)): 여기서 a는 누적값이며, 초깃값은 0이다(2번째 인자). 여기서 b의 값을 바꿔가며 a에 계속 누적하여 더한다. b는 배열 arr의 요소를 하나씩 돈다고 생각하면 된다.
https://www.w3schools.com/jsref/jsref_reduce.asp
Array.find(콜백함수)
: array에서 콜백함수 조건을 만족하는 첫번째 요소를 리턴한다. 만약 없으면 undefined를 리턴한다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/find
Array.some(콜백함수)
:
some() 메서드는 배열 안의 어떤 요소라도 주어진 판별 함수를 통과하는지 테스트한다. true, false로 결과를 반환한다. (프로그래머스: 기능개발)
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/some
Array.every(콜백함수)
: array의 모든 요소가 콜백함수의 조건을 통과하는지 테스트한다. 모든요소가 true이면 true를 반환하고, 그렇지 않으면 false를 리턴한다.
Array.reverse()
: 배열을 뒤집음
만약, reverse()메소드 사용하지 않고 뒤집는다면, 다음코드와 같음
while(x){
let t=x%10; //1의 자리
res=res*10+t;
x=parseInt(x/10); //Math.floor도 됨. 여기서 parseInt는 몫만 나타내기 위해 사용(몫만 나타내려면 Math.floor, parseInt 사용가능)
}
Array.join('')
: ''을 사이사이에 넣어서 string으로 합친다
Array.sort()
:
Array.push(x)
: 배열에 요소 x를 추가한다.
Array.pop()
: 배열의 마지막 요소를 꺼낸다(가장 마지막에 들어간 요소)
Array.unshift(x)
: 배열 가장 앞에 x를 집어넣음
Array(n).fill(x)
: 길이가 n이고 x로 채운 배열 생성
Array.from({length:n}, ()=>0)
: 길이가 n이고 value가 0인 유사배열 생성
Array.from({length:n}, (v, i)=>i+1)
: 길이가 n이고 value의 값을 i+1으로 생성(1, 2, 3, 4...)
Array.from(Array(35), ()=>Array(35).fill(0))
: 35행 35열 유사배열 생성
Array.from(Array(n), ()=>Array())
: n행 유사배열 만듦(열은 미정)
let sortArr=arr.slice()
: 깊은 복사(sortArr와 arr는 독립적으로 움직임)
let sortArr=arr.slice(i, j)
: 또한, i번째 인덱스에서 j-1번째 인덱스까지를 깊은 복사 하는 역할도 한다. (i~j-1까지의 요소만 리턴)
let stack=[]
으로 스택을 생성했다고 가정하자.stack.push(x)
: 배열에 요소 x를 추가한다.stack.pop()
: 배열의 마지막 요소를 꺼낸다(가장 마지막에 들어간 요소)let queue=[]
으로 큐를 생성했다고 가정하자.queue.shift()
: 큐 배열 가장 앞에 있는 원소 꺼냄queue.push(x)
: 큐 배열에 요소 x추가it(queue.includes(x))
: 큐에 x가 있는지 확인. true이면 큐에 x가 있는 것이다. isNaN(x)
: is Not a Number x? 즉, x가 숫자가 아니니?(true: 숫자X / false: 숫자O)
!isNaN(x)
: x가 숫자이니?
Number.isInteger(x)
: x가 정수인지 확인한다(정수라면 true 리턴)
Number(x)
: x를 숫자 자료형으로 변경 (parseInt로도 가능)
x.toString()
: x를 문자 자료형으로 변경
parseInt(x), Math.floor(x)
: x의 소수점을 삭제한다. 즉, 몫만 나타내야할 때 반드시 사용해준다. Set()객체
: 중복 제거 객체(let x=new Set()과 같이 객체를 생성한다)
x.add()
: Set()객체 x에 자료를 추가하는 메소드
x.size()
: Set()객체의 length
Array.from(x)
: x 객체를 배열로 만듦
Map()객체
: 맵 객체를 생성한다. 맵 객체는 key:value의 쌍으로 이루어져있다.
(let sH=new Map()과 같이 객체 생성한다)
sH.has(x)
: key=x가 있는지 확인한다. key=x가 있으면 true, 없으면 false 리턴한다.
sH.set(x, 1)
: key=x의 value를 1로 세팅한다.
sH.get(x)
: key=x인 value를 가져온다.
sH.delete(x)
: key=x를 삭제한다
sH.size
: sH의 사이즈