[프로그래머스] 코딩강의 2

hoya.a·2022년 6월 3일
0

알고리즘

목록 보기
3/10
post-thumbnail

자바스크립트의 9가지 코드 트릭

1. 구조 분해 할당을 이용한 변수 swap

2. 배열 생성으로 루프 제거하기

보통 단순히 범위 루프를 돌고 싶다면 다음과 같이 코드를 작성한다.

let sum = 0;
for (let i = 5; i < 10; i += 1) {
	sum += i;
}

만약 범위 루프를 함수형 프로그래밍 방식으로 사용하고 싶다면 배열을 생성해서 사용할 수 있다.

const sum = Array
	.from(new Array(5), (_, k) => k + 5)
    .reduce((acc, cur) => acc + cur, 0);

Array.from()

값만 매겨변수로 받을때
Array.from({length: 5}, x => x);

// output = [undefined, undefined, undefined, undefined, undefined]

값과 인덱스를 매개변수로 받을때
Array.from({length: 5}, (value, index) => index);

// output = [0, 1, 2, 3, 4]

Array.pretotype.reduce()

각요소에 대해 주어신 리듀서 함수를 실행 하고, 하나의 결과값을 반환한다.

const array1 = [1, 2, 3, 4];

const sumWithInitial = array1.reduce(
	(acc, cur) => acc + cur,
    initialValue
);

console.log(sumWithInitial);
// output : 10

3. 배열 내의 같은 요소 제거

4. Spread 연산자를 이용한 객체 병합

  • 같은 key값은 마지막에 대입된 값으로 정해진다.

5. &&와 || 활용

  1. 기본값을 넣어주고 싶을 때 ||를 사용할 수 있다.

const name = partitipantName || 'Guest';

// partitipantName이 0, undefined, 빈 문자열, null일 경우 'Guest'로 값이 할당된다.

  1. flag && func();

// flag가 true일 경우에만 실행

  1. 객체 병합에도 이용가능
const makeCompany = (showAddress) => {
	return {
    	name: 'A',
        ...showAddress && { address: 'seoul' }
    }
};
console.log(makeCompany(false));
// { name: 'A' }
console.log(makeCompany(true));
// { name: 'A', adress: 'seoul' }

6. 구조분해 할당 사용

객체 생성시 키 생략

7. 비구조화 할당 사용하기

8. 동적 속성 이름

ES6에 추가된 기능으로 객체의 키를 동적으로 생성 가능해졌다.

9. !!연산자를 사용하여 Boolean 값으로 바꾸기

배열(순차리스트)

연관된 데이터를 연속적인 형태로 구성된 구조를 가진다, 원소는 순서대로 index를 가진다.

배열의 특징

고정된 크기를 가진다.

  • 자바스크립트같은 스크립트 언어는 대부분 동적으로 크기가 증감된다.
    원하는 원소의 index를 알고 있다면 상수시간 O(1)으로 원소를 찾을 수 있다.
    원소를 삭제하면 해당 index에 빈자리가 생긴다.

배열의 요소 삭제

배열의 추가와 삭제는 O(n) 선형시간이 걸린다 따라서 추가와 삭제가 반복되는 로직에서 배열 사용을 권장하지 않는다. 베열은 탐색이 많은경우 유리하다.

JavaScript 에서 배열의 사용법

배열의 생성

  1. 빈배열 생성
  2. 초기화된 배열 생성
  3. fill() 사용한 배열 생성
  4. 특정 로직을 사용해 초기화할 때 from() 사용

배열 요소 추가, 삭제

  1. push(), pop()
  2. splice() : 중간에 값 끼워넣거나 제거 => 선형시간을 가진다.
  3. slice() : 중간에 요소 삭제후 보여준다.

배열의 순회

for문

최신 JS 에서는
for of문 사용 추천
: 조금더 직관적이다.
for (const item of arr) {
console.log(item)
}
//output : 각 요소가 순차적으로 나온다.

배열은 객체와 타입이 동일하다. 따라서 배열을 객체처럼 사용가능하다.

객체의 생성

배열과 동일

객체 추가기능

obj["key"] = "value";
: obj에 key : value 추가

obj.key = "value";
: 위와 동일

delete obj.key;
: 해당 key값 삭제

객체 순회

for in문

for (const key in obj) {
console.log(key, obj[key]);
}



인강 출처 : [프로그래머스](https://programmers.co.kr/learn/courses/13213)
profile
TIL 정리

0개의 댓글