반응형

전체 글 140

프로그래머스) 체육복

https://programmers.co.kr/learn/courses/30/lessons/42862?language=javascript 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 예전에 통과하지 못하고 다른 사람의 풀이를 보았던 문제이다. 지금이라면 풀 수 있을까 하여 다시 풀어보았고, 통과하였다! function solution(n, lost, reserve) { const lostFilterdAndSorted = lost.filter(number => !reserve.includes(number))...

IT/Algorithm 2021.10.01

프로그래머스) 최소 직사각형

https://programmers.co.kr/learn/courses/30/lessons/86491?language=javascript 코딩테스트 연습 - 8주차 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 나의 풀이 한 쌍의 값 중 큰 값을 large 리스트에 push 하고, 작은 값은 small 리스트에 push 하였다. 그리고 large 리스트에서 가장 큰 값과, small 리스트에서 가장 큰 값의 크기를 answer에 선언하여 리턴했다. function solution(sizes) { const largeSideNumber = []..

IT/Algorithm 2021.10.01

프로그래머스) 숫자 문자열과 영단어

https://programmers.co.kr/learn/courses/30/lessons/81301?language=javascript 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 나의 풀이 정규 표현식을 사용하여 0부터 9까지 replace 함수를 메소드 체이닝 하였다. 그리고 parseInt로 감싸서 숫자로 반환하였다. function solution(s) { return parseInt(s.replace(/zero/g, "0") .replace(/one/g, "1") .replace(/t..

IT/Algorithm 2021.10.01

Space Complexity - 공간 복잡도

두 가지 요소 - 보조 공간과 입력 공간 보조 공간 : 알고리즘이 실행을 위해 사용하는 임시 공간 입력 공간 : 입력의 크기를 고려하여 실행 시 필요한 공간 공간 복잡성을 평가하기 위해 보조 공간만 사용되는 시나리오가 있지만 이 글에서는 전체 공간(보조 및 입력)을 사용할 것이다. 공간 복잡도는 메모리 또는 데이터 저장의 사용을 평가하기 위해 고려하는 사항이다. 알고리즘은 몇 가지 작업을 수행하기 위해 메모리를 사용해야 한다. 프로그램 명령어 저장 (컴파일러 => 런타임) 실행 (예: 함수 호출, 점프 문) 데이터 저장(예: 상수 및 변수 값) 여기서 저장된 변수 데이터는 주요 고려 사항이다. 시간 복잡도와 마찬가지로 공간 복잡도는 일반적으로 빅오 표기법으로 표시된다. 예시 1) function add(..

IT/Algorithm 2021.10.01

Big - O Notation) 빅오 표기법과 시간 복잡도

빅오는 알고리즘이 얼마나 빠르게 실행될지를 비교할 때 사용된다. 시간 복잡도(Time complexity)를 통해서 알고리즘의 빠르기를 비교할 수 있다. 빅오( O ), 세타( Θ ), 오메가( Ω ) 시간 복잡도를 표기할 때에는 빅오만 표기하지 않는다. 최악, 평균, 최상의 경우에 따라서 빅오, 빅 세타, 빅 오메가를 표기한다. O(n): 최악의 경우 Θ(n): 평균의 경우 Ω(n): 최상의 경우 하지만 알고리즘을 평가할 때 보통 최악의 경우를 본다고 한다. 왜일까? 왜냐하면 최상의 경우는 유용한 정보가 아니기 때문이라고 한다. 사실상 대부분의 알고리즘에 특별한 입력 값을 이용하면 O(1)을 달성할 수 있을 것이다. 즉 최악의 상황에서도 이 정도의 성능은 보장할 수 있다는 것을 알려주는 것이 더 유용하..

IT/Algorithm 2021.09.29

기본 매개변수 (Default Parameters)

기본 매개변수를 사용하면 주어진 값이 없거나 undefined가 전달될 경우, 매개 변수를 기본값으로 초기화할 수 있다. 함수 내부에서 parameter를 변형하거나 활용하는 경우, 예상치 못한 에러가 발생할 가능성이 있다. Uncaught TypeError: Cannot read property ? of undefined 함수 내부적으로 Validation(유효성) 체크 로직이 없는 경우, parameter에 대한 필수값 여부를 설정하는 것이 없고, 기본값을 할당하고 있지 않기 때문에 발생하는 것이다. 기본 매개변수는 빈 값이나 undefined인 경우에 적용되며, 무조건 falsy한 값이 들어간다고 적용되는 것이 아님을 유의해야 한다. 이런 기본 매개변수에도 한계는 존재한다. 기본적으로 매개변수에 대..

IT/JS 2021.09.12

fetch API와 then 메서드

fetch API는 비동기 방식으로, 서버에 요청을 하면 응답을 받는 API이다. fetch().then() function callback() { console.log('response end'); } fetch('html').then(callback); console.log(1); console.log(2); 위 예제 코드를 보면 fetch를 통해 html 데이터를 요청하고, 요청에 대한 응답이 완료되었을 때 then 메서드를 통해 callback을 실행하고 있다. 위 과정이 진행되는 동안 아래의 1, 2 콘솔 출력이 진행되며 결과는 아래와 같다. 1 2 response end fetch API - response 객체 fetch API 가이드에 따르면 then에 삽입된 함수를 실행시킬 때, 함수의 ..

IT/JS 2021.09.09

클로저

클로저는 세 가지 스코프 체인을 가진다. 클로저 자신에 대한 접근 - 자신의 블록 내에 정의된 변수 외부 함수의 변수에 대한 접근 - 클로저 자신이 선언된 블록을 의미한다. 전역 변수에 대한 접근 내부 함수는 외부 함수의 변수뿐만 아니라 매개 변수에도 접근할 수 있다. 다만 외부 함수의 arguments 객체에는 접근할 수 없는데, 모든 함수에는 arguments가 자동으로 선언이 되기 때문이다. 클로저 함수 또한 자신만의 arguments가 존재하기 때문에 외부 함수의 arguments를 다른 변수에 저장하지 않는 한, 클로저는 외부 함수의 arguments에 접근할 수 없다. 클로저는 외부 함수의 변수에 대한 참조를 저장한다. 이는 클로저가 실제 값에 접근하는 것이 아닌 값의 참조에 접근한다는 것을 ..

IT/JS 2021.09.07

Recursion

재귀(Recursion) 프로그래밍에서 재귀란 자신을 정의할 때 자기 자신을 재참조하는 것을 말한다. 따라서 재귀 함수란 함수가 호출되어 실행할 때, 함수 내부에서 자기 자신을 다시 호출하는 재귀 호출의 형태를 말한다. 스택(Stack) 재귀 호출을 이해하기 위해서는 스택이라는 자료 구조를 먼저 살펴보는 것이 좋다. 왜냐면 우리의 컴퓨터는 호출 스택이라고 불리는 스택을 사용하여 함수를 실행하기 때문이다. 호출 스택은 일반적인 프로그래밍에서도 중요하지만 재귀를 사용할 때 더욱 중요하다. 매일 해야 할 일을 포스트잇에 한 장에 하나씩 적는다고 생각해보자. 그리고 포스트잇은 한 곳에 겹쳐 붙여야 한다. 가장 위에 붙어있는 포스트잇에 적혀있는 일부터 해결할 수 있다. 즉, 가장 밑에 있는 일을 하기 위해서는 그..

IT/JS 2021.08.30

콜백 함수

callback -> '되돌아 호출해달라'라는 의미 어떤 함수 A를 호출하면서 '특정 조건일 때 함수 B를 실행해서 나에게 알려달라'는 요청을 함께 보내는 것이다. 이 요청을 받은 함수 A는 해당 조건이 갖춰졌는지 여부를 스스로 판단하고 B를 직접 호출한다. 이처럼 콜백 함수를 다른 코드(함수 또는 메서드)에게 인자로 넘겨줌으로써 그 제어권도 함께 위임한 함수이다. 콜백 함수를 위임받은 코드는 자체적인 내부 로직에 의해 이 콜백 함수를 적절한 시점에 실행할 것이다. 예시로 비동기 처리 함수인 setInterval과 setTimeout는 콜백 함수를 넘겨받아 설정한 시간 간격마다 콜백 함수를 호출한다.

IT/JS 2021.08.30
반응형