분류 전체보기
[LeetCode] 41. First Missing Positive (처음 누락된 양수?)
📄 문제 - 정렬되지 않은 정수 배열 nums가 주어지면 누락된 가장 작은 양의 정수를 반환해라! - 주의점 : 누락된 값이 없으면 1 return, 음수는 신경 안쓰는 듯하다. 📝 나의 풀이 let firstMissingPositive = function (nums) { const setBox = new Set(nums); let targetNum = 1; while(setBox.has(targetNum)) { targetNum++ } return targetNum }; ⌨ 접근법 1. 논리가 간단하다. 새 배열 안에 가장 작은 양의 정수인 1(targetNum) 부터 있는지 없는지 검사한다. 2. 있으면 1씩 올려서 다시 검사, 없으면 targetNum return 3. 순서도 상관없고 보기 편하게 ..
[프로그래머스] JavaScript - 오픈채팅방
📄 문제 - 간단 설명 채팅방에 들어오고 나가거나, 닉네임을 변경한 기록이 담긴 문자열 배열 record가 매개변수로 주어질 때, 모든 기록이 처리된 후, 최종적으로 방을 개설한 사람이 보게 되는 메시지를 문자열 배열 형태로 return 하도록 solution 함수를 완성하라. - 형식 모든 유저는 [유저 아이디]로 구분한다. [유저 아이디] 사용자가 [닉네임]으로 채팅방에 입장 - "Enter [유저 아이디] [닉네임]" (ex. "Enter uid1234 Muzi") [유저 아이디] 사용자가 채팅방에서 퇴장 - "Leave [유저 아이디]" (ex. "Leave uid1234") [유저 아이디] 사용자가 닉네임을 [닉네임]으로 변경 - "Change [유저 아이디] [닉네임]" (ex. "Change..
[프로그래머스] JavaScript - 구명보트
📄 문제 - 사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 return 하도록 solution 함수를 작성해주세요. - 주의점 : 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없다. 😅 나의 실패 풀이 function solution(people, limit) { let answer = 0; let newArr = people.sort((a, b) => a - b); while (newArr.length != 0) { let target = newArr.pop(); let weight = limit - target; if (newArr[0] a - b); while (people.len..
[LeetCode] 4. Median of Two Sorted Arrays (정렬된 두 배열의 중앙값)
📄 문제 - 두개의 정렬된 배열이 주어지고, 그 두 배열을 합쳐서 정렬하고 중앙 값을 구해라. - 주의점 : 합쳐진 두 배열의 길이가 홀수라면 중앙 요소를 반환하면 되지만, 짝수면 중앙쯤에 두개의 요소를 더하고 반으로 나눠야 한다. (왜 ㅜㅜ) 📝 나의 풀이 - 처음 코드 let findMedianSortedArrays = function (nums1, nums2) { let newArr = nums1.concat(nums2).sort((a, b) => a - b); let len = newArr.length; if (len == 1) { return newArr[0]; } else { let center = Math.floor(len / 2); if (len % 2 != 0) { return newAr..
[LeetCode] 34. Find First and Last Position of Element in Sorted Array (정렬된 배열에서 요소의 첫 번째 및 마지막 위치 찾기)
📄 문제 - nums 라는 내림차순으로 정렬된 정수 배열이 주어지면 주어진 target값의 시작 위치와 끝 위치를 찾기 - 주의점 : 반드시 OutPut은 ['시작', '끝'] 으로 length가 2여야 한다. + target이 없으면 [-1,-1] return 📝 나의 풀이 let searchRange = function (nums, target) { let answer = []; let newArr = []; nums.forEach((a, b) => { if (a == target) answer.push(b); }); if (answer.length == 0) { return [-1, -1]; } else { newArr = [answer[0], answer[answer.length - 1]]; } ..