본문 바로가기

프로그래머스7

[프로그래머스 | JS] 레벨 0. 세 개의 구분자 (feat. [], {}은 true다) ❓ 문제: 세 개의 구분자 임의의 문자열이 주어졌을 때 문자 "a", "b", "c"를 구분자로 사용해 문자열을 나누고자 합니다. 예를 들어 주어진 문자열이 "baconlettucetomato"라면 나눠진 문자열 목록은 ["onlettu", "etom", "to"] 가 됩니다. 문자열 myStr이 주어졌을 때 위 예시와 같이 "a", "b", "c"를 사용해 나눠진 문자열을 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요. 단, 두 구분자 사이에 다른 문자가 없을 경우에는 아무것도 저장하지 않으며, return할 배열이 빈 배열이라면 ["EMPTY"]를 return 합니다. 📝 문제 풀이 정규식을 활용해서 해당 구분자(a, b, c)로 문자열을 나누고 배열을 반환하면 되는데.. 2023. 4. 26.
[프로그래머스 | JS] 레벨 0. 가까운 1 찾기 (feat. mdn 사이트를 잘 살피자) ❓ 문제: 가까운 1 찾기 정수 배열 arr가 주어집니다. 이때 arr의 원소는 1 또는 0입니다. 정수 idx가 주어졌을 때, idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아서 반환하는 solution 함수를 완성해 주세요. 단, 만약 그러한 인덱스가 없다면 -1을 반환합니다. 📝 문제 풀이 주어진 인덱스부터 for문으로 순회하면서 해당 인덱스를 찾을지 아니면 배열을 복사해서 찾을지 고민했다. 분명 배열을 특정 인덱스부터 탐색하는 효율적이고 간단한 방법이 있을 것 같아서 구글링해봤지만 괜히 힌트만 보게 될까봐 적극적으로 찾진 못했다. mdn 사이트를 살펴보다가 for문이 더 빠를 것 같았지만 뭔가 프로그래머스는 줄이 짧을수록 점수를 더 주는 것 같아서 slice와 indexOf로 풀기로 했.. 2023. 4. 25.
[프로그래머스 | JS] 레벨 0. 원소들의 곱과 합 ❓ 문제: 원소들의 곱과 합 정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요. 📝 문제 풀이 num_list 배열의 원소들의 합의 제곱값을 ** 로 할지 Math.pow()로 할지 고민하다가 메서드보단 단순계산이 더 빠르겠다싶어서 변수에 넣어서 값을 리턴했다. function solution(num_list) { let sum = num_list.reduce((a, b) => a + b); const multiple = num_list.reduce((a, b) => a * b); return multiple < sum * sum ? 1 : 0; } 지금 생각해보면 변수에 넣으면 .. 2023. 4. 24.
[프로그래머스 | JS] 레벨 1. 예산 (feat. 내부적인 오류....) ❓ 문제: 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요. 📝 문제 풀이 redu.. 2023. 4. 14.