문제 설명 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 제한 사항 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 문제 풀이 방법 이번 문제는 스칼라 곱을 구하는 문제였다. a와 b에서 같은 인덱스 값을 갖는 값끼리 곱해준 뒤 모든 값을 더해주면 된다. 처음에는 for문을 이용해 각각의 값을 곱한뒤 빈 배열에 넣어 reduce()를 이용해 더했다. 하지만, reduce()에 index 파라미터가 있음을 다른 ..
취준생
Repository 생성 Repository는 github에 가서 생성하자. Repository는 보이는 사진과 같이 생성 화면에서설정 후 생성할 수 있다. 이름과 README 생성 여부를 설정하면 아래의 Creat repository 버튼이 활성화 되어 버튼을 눌러주면 Repository는 생성된다. VSCode에서 연결하기 Repository을 생성했다면, 다음과 같이 Code 버튼을 눌러 해당 Repository의 주소를 얻을 수 있다. 주소를 얻었다면 VSCode를 실헹시키자! 새로운 폴더를 만들어 주고 해당 폴더에서 터미널을 열어주자 그리고 터미널에서 git init으로 git을 생성해준다. F1을 눌러 Git: Clone을 찾아 누르자 누르면 아래와 같은 창이 뜬다. 또 다시 누르면 연결할 R..
문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호가로 길이세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면 모든 명함들을 수납할 수 있습니다. 하지만 2번 명함을 가로로 눕혀 수납한다면 80(가로) x 50(세로) 크기의 지갑으로 모든 명함들을 수납할 수 있습니다. 이때의 ..
알고리즘의 해시 해시에는 해시(Hash), 해시 함수(Hash Function), 해싱(Hashing), 해시 테이블(Hash Table) 이렇게 4가지로 나뉘어 진다. 각 요소들에 대해 알아보자. 해시(Hash) 해시는 검색과 저장을 빠르게 하는 자료구조이다. 데이터를 저장할 때는 Key-Value 형태로 데이터가 저장되고,Key값이 배열의 인덱스로 저장되기 때문에 검색과 저장이 빠르게 일어난다. 해시 함수(Hash Function)와 해싱(Hashing) 해시 함수는 Key값을 고정된 길이의 Hash로 변환하는 기능을 한다. 해시 함수에서 Key값을 hash로 변환하는 과정을 해싱(hashing)이라 한다. 해싱 과정을 통해 해시 값(hash value)또는 해시 코드(hash code)로 변경하며,..
이분 탐색 알고리즘(Binary Search Algorithm) 정의 이미 정렬된 배열에서 탐색 범위를 두 부분 리스트로 나눠 절반씩 좁혀가며 필요한 부분에서만 탐색하도록 제한하여 원하는 값을 찾는 알고리즘이다. 동작 이진 탐색은 정렬된 배열이 필요하며, Left, Right, Mid의 변수가 필요하게 된다. Left는 왼쪽 끝 인덱스, Right는 오른쪽 끝 인덱스, Mid는 (Left + Right)/2 로 구할 수 있다. const binarySearch = (arr, targetValue) => { let left = 0; let right = arr.length - 1; while (left targetValue) { right = mid - 1; } else if (arr[mid] < targ..
문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때, 모든 사람이 심사를 받는데 걸리는 시간의 최솟값을 return 하도록 solution 함수를 작성해주세요. 제한 사항 입국심..