문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 해당 문제는 정렬을 이용해 풀이를 진행했다. 중요 코드를 살펴보면각 곡괭이의 광물당 피로도를 저장하는 obj, 갖고있는 곡괭이로 캘 수 있는 광물만큼 보관하는 newMinerals, 광물이 담겨있는 배열에 특정 광물의 갯수를 반환해주는 check 함수이다. 이 문제에서는 sort 메서드와 reduce 메서드를 중요하게 사용했다. sort 메서드의 경우는 광물이 담긴 배..
Sort
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 정규식 사용이 활약하는 문제이다. (\D+)는 숫자가 아닌 것 => 문제에서는 -와 같은 특수문자까지 포함해야 한다. (\d+)는 숫자인 것 => 중간에 숫자로 구성된 부분 뒤에 파일 형식(TAIL)은 파일명으로만 정렬해야되므로 고려안해도 된다. match메서드를 이용해 ['img12', 'img', '12', index: 0, input: 'img12.png', gro..
문제 설명 문제 풀이 방법 문자열 정렬을 하라는 문제로써 각 문자열의 n번째 문자가 같으면 문자열 전체를, 같지 않으면 n번째 문자열을 기준으로 정렬해주면 된다. 기본적으로 sort메서드를 사용하며, 문자열을 비교할 때는 localeCompare 메서드를 사용해준다. localeCompare 메서드는 참조 문자열이 정렬순으로 지정된 문자열 앞 뒤에 오는지 혹은 동일한지 수치를 반환한다. 내가 작성한 코드 const solution = (strings, n) => { return strings.sort((a, b) => a[n] === b[n] ? a.localeCompare(b) : a[n].localeCompare(b[n])) }
문제 설명 문제 풀이 방법 가장 작은 예산부터 더해줘서 지원 가능한 부서의 수를 구해야 한다. sort를 이용해 예산 배열을 정렬해주고 0인덱스 부터 for문으로 더해주며, 예산을 넘어가면 이전의 부서 까지의 부서 수를 반환한다. for break를 이용해 효율성을 조금 더 높여준다. 내가 작성한 코드 function solution(d, budget) { d.sort((a, b) => a - b); let cnt = 0; let sum = 0; for(let i=0; i
문제 설명 문제 풀이 방법 이 문제는 이해하면 매우 간단한 문제이다. 하나의 배열에서 가장 작은 수와 다른 배열에서 가장 큰 수를 곱해주며 더해준 값이 답이된다. 배열 원본 자체를 정렬해주는 sort메서드를 이용해 정렬해 주고, reduce 메서드를 이용해 한 배열의 요소별로 계산을 해주자 내가 작성한 코드 const solution = (A,B) =>{ let answer = 0 A.sort((a, b) => a - b); B.sort((a, b) => b - a); return A.reduce((sum, e, idx) => { return sum + e*B[idx] }, 0); } 런타임 에러난 코드 정확성은 모두 통과했지만 효율성은 모두 통과하지 못했다. 이 문제의 의도가 for문을 이용한 반복은 ..