본문 바로가기

전체 글

(84)
[해커랭크] Mini-Max Sum 문제링크 Mini-Max Sum | HackerRank Find the maximum and minimum values obtained by summing four of five integers. www.hackerrank.com 다섯 개의 양의 정수가 주어졌을 때, 정확히 네 개의 정수를 합산하여 계산할 수 있는 최소값과 최대값을 찾습니다. 그리고 두 개의 긴 정수로 구성된 한 줄에 각각의 최소값과 최대값을 출력합니다. 예를 들어, 주어진 숫자가 1, 2, 3, 4, 5라면, 다음과 같이 계산할 수 있습니다. 1, 2, 3, 4를 합하면 최소 합은 10이 됩니다. 2, 3, 4, 5를 합하면 최대 합은 14가 됩니다. 함수는 10 14를 출력해야 합니다. 풀이 : function miniMaxSum(a..
노드(Node) 란 '노드(Node)'라는 용어는 여러 분야에서 다양한 의미로 사용됩니다. 컴퓨터 과학에서 노드는 데이터 구조의 기본 요소로, 트리나 그래프 구조, 연결리스트에서 데이터를 표현하는 개별 단위를 말합니다. 각 노드는 데이터와 다른 노드로의 링크(참조)를 포함할 수 있습니다. 네트워크에서 노드는 네트워크의 일부인 컴퓨터, 프린터, 라우터, 스위치 등의 장치를 의미합니다. 이러한 노드들은 네트워크 상에서 데이터를 전송하고 수신하는 역할을 합니다. 또한, 물리학에서 노드는 파동이 교차하는 지점으로, 이 지점에서 파동의 진폭은 최소가 됩니다. 쉽게 설명하기 노드의 개념을 이해하기 위해, 다음과 같은 예시를 생각해볼 수 있습니다. 컴퓨터 과학에서의 노드는 마치 가계도에서 각 사람을 나타내는 것과 비슷합니다. 가계도에서..
JS 비동기 프로그래밍 JavaScript는 싱글 스레드 언어로, 일반적으로 한 번에 하나의 작업만 처리할 수 있습니다. 시간이 많이 걸리는 작업을 동기적으로 처리하면, 해당 작업이 종료될 때까지 프로그램의 다른 부분이 블로킹(작업 중단)됩니다. 하지만, 비동기 처리를 통해 이러한 블로킹을 방지하고 다른 작업을 병렬적으로 진행할 수 있습니다. JavaScript에서 비동기 처리가 가능한 타이머 함수(setTimeout, setInterval), HTTP 요청, 그리고 이벤트 핸들러 등이 있습니다. 이런 비동기 작업들은 브라우저나 Node.js의 이벤트 루프에 의해 관리되며, 이벤트 루프는 호출 스택이 비어 있을 때 작업 큐(Task Queue) 또는 마이크로태스크 큐(Microtask Queue)에서 작업을 하나씩 꺼내 처리함..
Yarn 이란 Yarn은 자바스크립트 프로그래밍 언어를 위한 새로운 패키지 관리자입니다. Facebook, Google, Exponent, Tilde와 같은 기업들이 공동으로 개발했습니다. Yarn은 기존의 npm(Node Package Manager)과 유사한 기능을 제공하지만, 몇 가지 중요한 차이점이 있습니다. Yarn은 설치 속도가 빠르고, 패키지 의존성을 보다 효율적으로 관리합니다. 또한, 오프라인 캐시 기능을 제공하여, 한 번 설치된 패키지는 인터넷 연결 없이도 재사용할 수 있습니다. Yarn은 또한 패키지 버전 관리와 호환성을 개선하여, 프로젝트의 안정성과 일관성을 높이는 데 도움을 줍니다. 쉽게 설명하기 Yarn을 이해하기 위해서는, 슈퍼마켓에서 쇼핑하는 것과 비교할 수 있습니다. npm이 기존의 슈퍼마..
NPM 이란 NPM은 Node Package Manager의 약자로, 자바스크립트 프로그래밍 언어를 위한 패키지 관리자입니다. npm은 Node.js의 기본 패키지 관리 시스템으로, 개발자들이 자바스크립트 라이브러리와 애플리케이션을 공유하고 접근할 수 있는 플랫폼을 제공합니다. npm을 사용하면, 개발자들은 필요한 자바스크립트 패키지를 쉽게 설치, 업데이트, 관리할 수 있습니다. npm은 또한 의존성 관리를 자동화하여, 프로젝트에 필요한 모든 라이브러리가 올바른 버전으로 설치되도록 도와줍니다. npm은 명령줄 인터페이스(CLI)를 통해 사용되며, npm 레지스트리라는 중앙 데이터베이스에 수많은 패키지가 저장되어 있습니다. 쉽게 설명하기 npm을 이해하려면, 도서관을 생각해볼 수 있습니다. 도서관에서는 다양한 책들을 ..
[해커랭크] Diagonal Difference 문제링크 Diagonal Difference | HackerRank Calculate the absolute difference of sums across the two diagonals of a square matrix. www.hackerrank.com 주어진 정사각형 행렬의 대각선들의 합의 절대 차이를 계산합니다. 예를 들어, 아래와 같은 정사각형 행렬이 주어졌을 때: 1 2 3 4 5 6 9 8 9 왼쪽에서 오른쪽으로 가는 대각선의 합은 1 + 5 + 9 = 15이고, 오른쪽에서 왼쪽으로 가는 대각선의 합은 3 + 5 + 9 = 17입니다. 이 두 합의 절대 차이는 |15 - 17| = 2입니다. 풀이 : function diagonalDifference(arr: number[][]): numbe..
자바스크립트 컴파일러 에러와 런타임 에러 이해하기 현대 자바스크립트에서는 트랜스파일링이나 번들링 도구들을 사용하는 것이 일반적입니다. 이러한 환경에서 컴파일러 에러와 런타임의 에러를 어떻게 구분하고 이해해야 하는지 알아보겠습니다 컴파일러 에러란? 자바스크립트는 전통적인 컴파일 언어와 달리 인터프리터 언어입니다. 이는 코드가 별도의 컴파일 과정을 거치지 않고 실행 시점에 해석된다는 것을 의미합니다. 그러나 현대 웹 개발 환경에서는 트랜스파일링과 번들링 과정이 일반적이며, 이 과정에서 발생하는 에러를 '컴파일러 에러'라고 부르는 것 같습니다. 트랜스파일링 (Transpiling): 트랜스파일링은 주로 고수준 언어에서 다른 고수준 언어로의 소스 코드 변환을 의미합니다. 예를 들어, ES6+ 자바스크립트 코드를 오래된 브라우저에서도 호환되는 ES5 코드로 변환..
컴파일 타임이란 컴파일 타임(Compile Time)은 프로그램이 컴파일되는 시점, 즉 소스 코드가 실행 가능한 코드로 변환되는 과정과 그 시간을 의미합니다. 이 과정에서 컴파일러는 프로그래머가 작성한 소스 코드를 읽고, 문법적 오류를 검사하며, 기계어나 중간 코드로 변환합니다. 컴파일 타임에 발생하는 오류는 주로 문법적인 오류나 타입 불일치 등으로, 이 시점에 해결되어야 프로그램이 정상적으로 실행될 수 있습니다. 컴파일 타임은 프로그램이 사용자에게 제공되기 전, 개발 과정 중에 발생하는 단계로, 실행 시간(런타임)과 대비됩니다. 쉽게 설명하기 컴파일 타임을 이해하기 위해, 책을 출판하는 과정을 생각해 볼 수 있습니다. 작가가 원고를 작성하는 것이 프로그래밍 과정이라면, 원고를 실제로 인쇄하고 책으로 만드는 과정이 컴파..