개발자의 공부

개발자의 공부/자료구조&알고리즘

[알고리즘]객체(Object)의 Big O

일단 객체를 언제 사용하는지 알아보자. 1. 객체는 정렬되어 있을 필요가 없다. 2. 빠른 접근과 입력, 삭제를 원할 때 좋다. 객체의 Big O 입력(Insertion) - O(1) 제거(Removal) - O(1) 탐색(Searching) - O(N) 접근(Access) - O(1) let instructor = { // instructor- 강사 firstName: "Kelly", isInstructor: true, favoriteNumbers: [1, 2, 3, 4] } insturctor변수에 Object를 담았는데 컴퓨터가 접근할 때 단순히 firstName이라고 적혀있는 메모리 공간에 다시 접근할 수 있는 것은 아니다. 그렇기 때문에 작업을 하면서 추가적인 단계들이 있다. 주목할 점은 Jav..

개발자의 공부/JS

JS 코드 개선+Optional chaining+null 병합 연산자

#swichEl; #fontSelectEl; constructor() { this.#assignElement(); this.#addEvent(); } #assignElement() { this.#swichEl = document.getElementById("switch"); this.#fontSelectEl = document.getElementById("font"); }위 코드는 document단에서 계속 element를 찾았다. switch나 font는 container의 형제 요소들 이기 때문에 container를 document단에서 찾고 그 찾은 내용을 querySelector로 선택할 수 있다. 리펙토링 하면 아래와 같다. #swichEl; #fontSelec..

개발자의 공부/자료구조&알고리즘

[알고리즘]공간 복잡도

앞선 게시물에서 시간 복잡도의 bigO표기법에 대해 정리하였다. 정리한 게시물 이번에는 공간 복잡도에 대해 정리해보자. 알고리즘 성능 평가 어떤 알고리즘이 있을 때, 그 알고리즘의 성능 평가는 어떻게 할 수 있을까? 알고리즘 성능을 평가하기 위해 '복잡도(Complexity)'의 척도를 사용한다. 시간 복잡도와 공간 복잡도가 있으며 복잡도가 낮을수록 좋은 알고리즘이다. 시간 복잡도: 특정한 크기의 입력에 대해 알고리즘의 수행 시간 분석 공간 복잡도: 특정한 크기의 입력에 대해 알고리즘의 메모리 사용량 분석 쉽게 말하자면, 시간 복잡도는 입력이 커질수록 알고리즘의 실행 속도가 어떻게 바뀌는지 분석하고, 공간 복잡도에서는 입력이 커질수록 알고리즘이 얼마나 많은 공간을 차지하는지 분석하는 것이다. 공간 복잡도..

개발자의 공부/자료구조&알고리즘

[알고리즘]Big O Notation

알고리즘 성능 평가어떤 알고리즘이 있을 때, 그 알고리즘의 성능 평가는 어떻게 할 수 있을까?알고리즘 성능을 평가하기 위해 '복잡도(Complexity)'의 척도를 사용한다.시간 복잡도와 공간 복잡도가 있으며 복잡도가 낮을수록 좋은 알고리즘이다.시간 복잡도: 특정한 크기의 입력에 대해 알고리즘의 수행 시간 분석공간 복잡도: 특정한 크기의 입력에 대해 알고리즘의 메모리 사용량 분석 이 개념들을 왜 알아야 할까?작성한 코드가 어떻게 동작하는지에 대해 정확한 전문 용어를 사용하는 것은 중요하다.서로 다른 접근 방식 간의 균형에 대해 논의하는 데 유용하다. 예를 들어, 한 해결책이 정말 좋고 다른 하나는 엉망인 경우가 많지 않다. 어떤 건 많은 데이터양을 다루는 것에 유용하고, 다른 하나는 더 오래 걸려도 처리..

개발자의 공부/JS

[JS]함수 간단 정리(내용 업데이트 + 생성기 함수)

함수의 결과가 반복적으로 사용될 경우 변수에 담아서 사용하는 것이 좋고 단일로만 사용된다면 함수의 결과가 사용되는 곳에서 함수를 호출하는 것도 효과적이다. 함수 선언문과 함수 표현식 함수 선언문(정의문): function 키워드와 함수의 이름을 직접적으로 선언하는 방법. (기명함수) function sum(x, y) { return x + y } 함수 표현식: 함수의 이름을 사용하지 않고 변수에 담아서 사용하는 방법. (익명함수) 함수를 값으로 취급하기 때문에 함수에 이름이 없더라도 변수에 담아서 값을 받을 수 있다. 변수에 함수를 넣게 되면 그 변수가 그 함수의 이름을 대신하게 된다. const sum = function (x, y) { return x + y }; sum(1, 2); 식은 세미콜론으로..

개발자의 공부/JS

[JS]LocalStorage와 SessionStorage(내용 업데이트)

Window.localStoragelocalStorage 읽기 전용 속성을 사용하면 Document 출처의 Storage 객체에 접근할 수 있다. 저장한 데이터는 브라우저 세션 간에 공유된다. localStorage는 sessionStorage와 비슷하지만, localStorage의 데이터는 만료되지 않고 sessionStorage의 데이터는 페이지 세션이 끝날 때, 즉 페이지를 닫을 때 사라지는 점이 다르다. 예제localStorage.setItem('myCat', 'Tom');key: value 형식으로 첫 번째 인수는 key, 두 번째 인수는 Value이다. 데이터를 저장할 때 문자 데이터 형식으로 저장하는 게 좋다. 객체나 배열 데이터 같은 경우 JSON 객체 stringify를 통하여 문자 데이..

개발자의 공부/JS

[JS문법]for...of와 for...in

✅ for...of와 for...in은 무엇일까? 결론부터 말하자면 for...of문은 배열을 순회할 때, 배열의 특정 위치에 관심이 없는 상황에서 쓰기편하다. for...in문은 iterable이 배열이든 객체든 key의 value를 순회한다. 🤔 for...0f ✔️ 반복 가능한 객체(iterable)를 순회할 수 있도록 해준다. ✔️ Array, Map, Set, arguments, String 등이 해당된다. (Object는 해당 X) 구문 for (variable of iterable) { statement } 파라미터 variable 각 반복에 서로 다른 속성 값이 variable에 할당된다. iterable 반복되는 열거가능(enumerable)한 속성이 있는 객체 const arr = ['..

개발자의 공부/JS

코드 프로그래머스 문제 풀이4

문제: 콜라츠 추측 문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세..

JMins
'개발자의 공부' 카테고리의 글 목록 (9 Page)