반응형

전체 글 49

[Javascript] 자바스크립트는 어떤 언어일까?

자바스크립트는 어떤 언어일까요? 자바스크립트는 싱글스레드면서 논블로킹 언어입니다. 자바스크립트는 비동기 처리를 위해 싱글 스레드지만 블로킹되지 않게 처리합니다. 즉 하나의 요청이 완료될 때까지 기다리지 않고 동시에 다른 작업을 바로 수행합니다. 스레드 프로그램 실행시 프로세스 내에서 실행되는 흐름의 단위를 의미 싱글 스레드 스레드가 한개밖에 존재하지 않아 한번에 하나의 작업만 할수 있음. 코드를 한줄 한줄 실행하면서 하나의 작업이 끝나기 전까지는 뒤에 작업이 실행되지 않느다 프로세스? 프로그램이 구동해 프로그램이 메모리 상에 실행되는 작업 단위를 의미. 프로그램이 실행되는 순간 활동하기 위한 무대 스레드? 프로세스가 할당 받은 자원을 이용하는 실행의 단위, 프로세스 내에 여러개 실행될 수 있다. 우리는 ..

개발/Javascript 2024.03.20

[프로그래머스] 네트워크

https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴..

카테고리 없음 2024.03.19

[JS] keydown/keyup에서 한글 입력 시 함수가 두 번 실행되는 경우

문제 Mui Autocomplete 한글입력시 입력한 한글입력의 마지막 문자만 전송이 되는 현상이 나타났다. 문제를 분석해보니 onKeyPress 함수가 2번 호출되었다. onKeyDown : keycode 값 - 한/영, Shift, Backsapce 등 인식 가능 onKeyPress : ASCII 값 - 한/영, Shift, Backsapce 등 인식 불가 KeyboardEvent.isComposing은 입력한 문자가 조합문자인지 아닌지를 판단. 그런데 Enter를 누르면 이벤트가 2번 발생 → 문자가 조합중인지 아닌지 판단하기 어렵기 때문 → 이 이슈는 영어를 입력할 때에는 발생하지 않고, 한글을 입력할 때에만 발생 해결 방법 onKeyDown을 onKeyPress 로 변경 → Shift 키와 De..

[Javascript] 호이스팅

함수의 호이스팅 함수의 선언문이 마치 코드 맨 앞단에 작성된 것처럼 작동하는 자바스크립트의 특징입니다. hello(); // hello~!! function hello (){ // 함수 선언문 console.log('hello~!!') } hello(); // hello~!! 함수의 선언인 function hello를 함수의 실행 전에 미리 등록해 놓는 것을 의미한다. 이러한 함수의 호이스팅이라는 특징으로 함수 선언문은 미리 메모리에 등록되고 코드의 순서와 상관없이 정상적으로 함수를 호출할 수 있다. 변수의 호이스팅 호이스팅이란 "끌어올린다" 라는 뜻으로 변수 및 함수 선언문이 스코프 내의 최상단으로 끌어올려지는 현상 을 말합니다. var의 경우 변수를 선언하고 초기화하는 과정이 동시에 일어나서 호이스팅..

개발/Javascript 2024.03.10

[Javascript] 클로저

클로저란? 클로저는 함수와 함수가 선언된 어휘적(렉시컬) 환경의 조합으로, 외부함수의 변수에 접근할 수 있는 내부 함수 입니다. 클로저 = 함수 + 함수 → 어휘적 환경의 조합 (외부함수의 변수에 접근할 수 있는 내부 함수) function add() { const a = 10; function innerAdd() { const b = 20; console.log(a + b); // 30 } innerAdd(); } add() // innerAdd의 외부함수 a와 내부함수 b가 합쳐져 30이 return 됨 여기서 어휘적 환경의 조합이라는 의미는 변수가 함수 내부에서 어디에 선언되어 있는지를 의미한다. 변수와 함수의 선언 형태의 조합을 의미하는 것인데, 자바스크립트는 기존 호출되는 환경과 별개로 기존에 ..

개발/Javascript 2024.03.08

[프로그래머스] 할인 행사

https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가..

[프로그래머스] 카드 뭉치

https://school.programmers.co.kr/learn/courses/30/lessons/159994# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제설명] 코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았습니다. 코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고 싶습니다.카드 뭉치의 단어 순서는 바꿀 수 없습니다. - 원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용합니다. - 한 번 사용한 카드는 다시 사용할 수 없습니다. - 카드를 사용하지 않고 다음 카드로 넘어갈 ..

[프로그래머스] 방문 길이

[문제] 게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다. U: 위쪽으로 한 칸 가기 D: 아래쪽으로 한 칸 가기 R: 오른쪽으로 한 칸 가기 L: 왼쪽으로 한 칸 가기 캐릭터는 좌표평면의 (0, 0) 위치에서 시작합니다. 좌표평면의 경계는 왼쪽 위(-5, 5), 왼쪽 아래(-5, -5), 오른쪽 위(5, 5), 오른쪽 아래(5, -5)로 이루어져 있습니다. - 코드를 작성하기 전, 문제를 분석하는 단계에서 예외케이스를 추가해볼 것! - 문제를 풀지 못한 경우, 어디까지 생각했는지 과정을 기록해본다. 여기까지는 내가 이렇게 생각해서 이 알고리즘을 쓰려고 했는데 또는 답안지랑 다른 부분을 기록하자. 그러면 다음에 무엇을 모르는지 명 확하게 알 수 있어 이 후 공부에 도움이 된..

[프로그래머스] 행렬의 곱셈

❌ 오답 https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 왜 틀렸을까? 간단한 문제도 막상 풀려고하면 잘 안된느 경우가 있다. 문제를 나눠서 푸는 연습할 것!! 1. 행렬 arr1, arr2으 행과 열의 수 2. 결과를 저장할 2차원 리스트 3. function solution(arr1, arr2) { let answer = []; let x_length = arr1.length; let y_length = arr2[0].length; let ..

시간 복잡도

시간 복잡도 시간복잡도란 알고리즘의 성능, 즉 연산 횟수를 측정하는 것을 의미하며 시간복잡도가 낮을수록 효율적이라고 볼 수 있다. 빅 오 표기법 자료구조와 알고리즘의 효율성을 분류해 놓은 기법을 의미한다. 빅 오의 본질은 데이터의 양이 늘어났을 때 알고리즘의 성능이 어떻게 변하는지를 뜻한다. 코딩테스트에서 빅 오 표기법 활용 방법 코딩테스트에서는 입력 값이 제한시간안에 출력이 되는지를 보는 것. 연산 횟수는 1000 ~ 3000만 정도로 고려할 것! 시간 복잡도 최대 연산 횟수 O(N!) 10 O(2^N) 20 ~ 25 O(N^3) 200 ~ 300 O(N^2) 3000 ~ 5000 O(NlogN) 100만 O(N) 1000 ~ 2000만 O(logN) 10억 배열에서 7이라는 숫자를 찾을 때, 한개 한..

반응형