💁♀️ 예산S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요. 👩💻 풀이functi..
프로그래머스

🔍 문제 - 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정리 - 해당 인덱스 값이 여럿일 경우 사전순으로 앞선 문자열이 앞쪽으로 위치한다. ⌨️ 입출력 예시 strings n return ['sun', 'bed', 'car'] 1 ['car', 'bed', 'sun'] ['abce', 'abcd', 'cdx'] 2 ['abcd', 'abce', 'cdx'] 🙋♀️ 내가 푼 방식 1. 인덱스 n에 해당되는 배열의 값 추출한다. 2. 해당 값들을 문자열 앞에 붙여준다. 3. 사전순으로 정렬 .sort() 4. 앞글자 떼기 // 최종 리턴 값 let answer = []; // 해당 값들을 문자열 앞에 붙여준 값들의 배열. let ne..

🔍 문제 - 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes, - 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. - 실제 정수들의 합을 구하여 return 해준다. ⌨️ 입출력 예시 🙋♀️ 내가 푼 방식 - 문제 자체도 이해를 못했었음.. - reduce 이해하느라 힘들었다 function solution(absolutes, signs) { // return할 answer 값 선언 var answer = 0; // absolutes, signs 각각 연산에 따른 결과 값 넣어 줄 배열 선언 let newArr = []; // absolutes와 signs의 길이는 항상 동일 // 반복문 같은 인자로 돌려도 무방 for(let i = 0; i < absolut..

🔍 문제 - 대문자와 소문자가 섞여있는 문자열 s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return - 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴 - 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. - 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return ⌨️ 입출력 예시 🙋♀️ 내가 푼 방식 - filter 써보려다가 길이를 구해야해서 배열 안에 넣어줘야 했기 때문에 - forEach로 돌며 p, P, y, Y랑 일치하는 문자 찾아 배열에 넣어주었다! function solution(s){ // 파라미터 s의 문자열을 넣어줄 배열 let arr = []; // 'p', 'y' 길이..

🔍 문제 - 문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return ⌨️ 입출력 예시 🙋♀️ 내가 푼 방식 - 말그대로 위치를 바꾸면 어떨까 생각했다. - 해당 인덱스 위치 값의 요소들을 바꿔 새로운 배열에 넣어주었다. - 배열을 문자열로 반환해주어야 하기 때문에 join() 메소드 사용해주었다. function solution(my_string, num1, num2) { var answer = ""; let str_arr = my_string.split(""); let switch_arr = str_arr[num1]; str_arr[num1] = str_arr[num2]; str_..

🔍 문제 - 문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return ⌨️ 입출력 예시 🙋♀️ 내가 푼 방식 - 대소문자 변환하면 떠올랐던건 toUpperCase, toLowerCase였다. - 각각의 요소들을 돌면서 각 요소의 문자가 UpperCase가 된 상태와 동일하다면 LowerCase 해주어 소문자로 바꿔주었고 - LowerCase가 된 상태와 동일하다면 UpperCase 해주었다. - 각각 해준 값들을 빈 배열값에 넣어두었고, join 메소드를 통해 문자열로 추출하며 반환하였다. - 다른사람의 풀이를 봐야할것같당.. 메소드가 많아 훨씬 간결하게 하지 않았을까 생각이 든다. function solution(my_string) { var ..

🔍 문제 - 문자열 my_string이 매개변수로 주어지고, my_string에서 중복된 문자를 제거한 후 하나의 문자만 남긴 문자열을 return ⌨️ 입출력 예시 🙋♀️ 내가 푼 방식 - 드디어 모던자바스크립트 Deep dive 책에서 봤던 Set을 사용해보았다!! - my_string 값을 배열로 받아 각 요소의 중복을 제거 해준 후 - join('') 메소드로 배열의 모든 요소를 연결해 하나의 문자열로 만들어주어 반환한다. function solution(my_string) { var answer = new Set([...my_string]); let answer_arr = [...answer].join(""); return answer_arr; } 참고자료: 프로그래머스 코딩테스트 https:..

🔍 문제 - 문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return하기 ⌨️ 입출력 예시 🙋♀️ 내가 푼 방식 - 숫자만 출력은 어떻게 할지 검색해보다가 만난 정규식 - 숫자만 추출해주는 정규식으로 정리후 str 변수에 넣어줬다. function solution(my_string) { var answer = []; let regex = /[^0-9]/g; let str = my_string.replace(regex, ""); console.log(str);// 12392 return answer; } solution("hi12392"); - 입출력 예시에서는 배열 값이기 때문에 .split() 메소드로 배열 안에 넣어준 다음 .s..

🔍 문제 - 가위는 2 바위는 0 보는 5로 표현 - 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return ⌨️ 입출력 예시 🙋♀️ 내가 푼 방식 - if 문으로 하나 하나 해결하려다가 reverse 처럼 메소드 활용을 많이 해야겠다 싶어 검색해봤다. - 각각의 가위, 바위, 보가 이기는 숫자는 정해져있기 때문에 배열을 이용해보면 어떨까 싶어 이것 저것 해보다 실패.. - forEach와 map 차이를 모르고 있었던게 실수의 이유 -> 공부하자.. function solution(rsp) { const rspWin = { 2 : 0, 0 : 5, 5 : 2 }; return [...rsp]...

🔍문제 - 문자열을 뒤집어서 반환하기 ⌨️ 입출력 예시 🙋♀️ 내가 푼 방식 - 배열 뒤집기 문제 풀고 나서 바로 푼거라 reverse 메소드 바로 썼는데 문자열은 배열이 아님!! - 배열 안에 글자 하나 하나를 요소로 넣고 reverse 메소드에 넣고 반환해야겠다 생각함. - 반환할때 배열로 반환이 아닌 뒤집힌 문자열로 반환해야해서 검색해봤더니 join() 이라는 메소드 발견!! function solution(my_string) { var answer = ""; let splitStr = my_string.split(""); let strArr = splitStr.reverse(); answer = strArr.join(""); return answer; } 참고자료: 프로그래머스 코딩테스트 연습 ..