[코딩테스트 - JS] 빈출 개념 정리 (알고리즘 X)

노치현·2023년 4월 21일
0
post-thumbnail

Built-in Object

eval()

문자열로 나타낸 자바스크립트의 명령문 또는 연산식 실행

console.log(eval('100 + 100')); // 200

parseInt()

문자열을 해당 진수(10진수, 16진수 등)의 정수로 반환
parseInt(문자열, 진수)

console.log(parseInt('100, 16')); // 256
console.log(parseInt('100, 2')); // 4

Array

concat()

문자열로 나타낸 자바스크립트의 명령문 또는 연산식 실행

let arr = ['apple', 'pear'];
let arr1 = ['banana', 'peach', 'pineapple']

console.log(arr.concat(arr1));

splice()

요소를 삭제하거나 교체
splice(인덱스, 0(해당 자리에 다음 문자열을 위치)or 1(해당 자리에 기존 문자열을 삭제하고 넣음), 문자열)

let arr = ['apple', 'pear', 'banana'];

console.log(arr.splice(1, 1, 'peach'); // pear => peach
console.log(arr); // ['apple', 'peach', 'banana'];

console.log(arr.splice(1, 0, 'pineapple');
console.log(arr); // ['apple', 'pineapple', 'peach', 'banana']

slice()

요소를 인덱스 기준으로 잘라냄
slice(시작 인덱스, 종료+1 인덱스)

let arr = [3, 4, 2, 6, 9, 1];

console.log(arr.slice(2,6)); // 2~5번 인덱스 [2, 6, 9, 1]

map()

배열을 순회하며 함수를 실행한 결과로 새로운 배열을 만들어 반환

let arr = [3, 4, 2, 6, 9, 1];
let arr1 = ['1', '2', '3', '4', '5']

function multiply(x){
	return x**2;
}
console.log(arr.map(multiply)); // [9, 16, 4, 36, 81, 1]
console.log(arr.map(x => parseInt(x, 10))); // [1, 2, 3, 4, 5]

sort()

배열을 정렬 후 그 배열을 반환

let arr = [1, 100, 10 ,22, 4, 2];

console.log(arr.sort()); // [1, 2, 4, 10, 22, 100]

let score = [30, 70, 65, 80, 87, 82];

score.sort((a, b) => {
	return b - a;
});

console.log(score); // [87, 82, 80, 70, 65, 30]
// 오름차순의 경우 return a - b

reverse()

배열을 역순으로 정렬한 후 그 배열을 반환

let arr = [1, 2, 3, 4, 5];

console.log(arr.reverse()); [5, 4, 3, 2, 1]

Set: 중복값을 제외한 유일한 값 저장

let arr = [1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 5, 5, 5];
let s = new Set(arr);

console.log(s); // {1, 2, 3, 4, 5}
console.log(s.size); // 5
console.log(s.lenght); // undefined

let m = new Map();
m.set('수학점수', 90);

// has(): 객체 내 주어진 키의 값이 있는지 확인하고 Boolean 값 반환
console.log(m.has('수학점수')); // true
console.log(m.has(90)); // false

String

\n: 개행
\t: 탭
\': 작은따옴표
\": 큰따옴표
\\: 역슬래시

includes

문자열이 특정 문자열을 포함하는지 확인
string.includes( searchString, length )

  • searchString : 검색할 문자열로 필수 요소이다. 대소문자를 구분한다.
  • length : 검색을 시작할 위치이다. 선택 요소로, 값이 없으면 전체 문자열을 대상으로 한다.
let str = 'abc abcde abcd ab cde ef';

console.log(str.includes('abc')); // true
console.log(str.inclues('bcd')); // false

split()

문자열을 지정된 구분자로 나눈 후 배열로 반환

let str = '동해물과 백두산이 마르고 닳도록';

console.log(str.split(' ')); // ['동해물과', '백두산이', '마르고', '닳도록']

replace()

특정 패턴에 일치하는 문자열을 교체

let str = 'abc abcde abcd ab cde ef';

console.log(str.replace('ab', '!')); // abc abcde abcd ! cde ef

indexOf()

문자열에서 정규식과 매치되는 부분을 검색하고 배열로 반환

let str = '동해물과 백두산이 마르고 닳도록';

console.log(str.indexOf('백두산이')); // 5

match()

주어진 문자열과 첫번째로 만나는 문자열의 인덱스 반환

let str = 'abc abcd abcde ab cd def ABC';
let regEx = /abc/gi // 전역에서 대소문자 구별 없이 찾기

console.log(str.match(regEx)); //["abc", "abc", "abc", "ABC"];

Math 메서드

Math.abs(): 절대값 반환
Math.ceil(): 올림
Math.floor(): 내림
Math.round(): 반올림
Math.max(): 가장 큰 수 반환
Math.min(): 가장 작은 수 반환
Math.pow(x, y): x의 y 제곱근 반환 // Math.pow(3, 2) = 9

정규 표현식

문자열의 일정한 패턴을 표현하는 일종의 형식 언어

\d // 숫자 하나
\w // 문자 하나
/.../ // 문자 3개
\d+ // 하나 이상의 연결된 숫자 
{n, m} // 앞에 나오는 문자 패턴이 최소 n, 최대 m번 반복
[1-9]\d* // 0으로 시작하지 않는 연속된 숫자들
\d{2,3}[ -]?\d{3,4}[ -]?\d{4} // 전화번호 (2~3자리)-(3~4자리)-(4자리)
[a-z]+ // 연속된 소문자
[가-힣]+ // 한글 연속된 문자
\s // 공백 문자(스페이스, 탭, 뉴라인)
\S // 공백 문자를 제외한 문자
\D // 숫자를 제외한 문자
\W // 글자 대표 문자를 제외한 글자들(특수문자, 공백 등)
/조건/ // 조건에 일치하는 결과 하나만 검색
/조건/g // 조건에 일치하는 결과 모두 검색
/조건/i // 대소문자를 구별하지 않고 검색
/조건/m // 문자열의 행이 바뀌더라도 계속 검색
^ // 문자열 시작 또는 줄의 시작부분에 대응
[^] // 대괄호 안에서 사용하면 뒤에 나오는 표현식으로 시작하지 않는다는 것을 의미 
$ // 문자열 끝 또는 줄의 끝부분에 대응

ASCII 코드표

"문자열".charCodeAt(인덱스)

65: "A"
90: "Z"
97: "a"
122: "z"

profile
느리지만 굳세고 단단하게 성장하고픈 FE

0개의 댓글