프론트엔드✏️/코드캠프
알고리즘 - 예산, JadenCase문자열 만들기
당근먹는하니
2022. 6. 17. 16:09
728x90
반응형
// 테스트케이스 3번 실패
function solution(d, budget) {
//1. 각 원소의 합을 구해보장
console.log(d.reduce((acc, cur)=> acc+cur)); // 15
// 2. 제일 작은 애부터 차례로 담아보자
console.log(d.sort((a,b)=>a-b));
let arr = d.sort((a,b)=>a-b);
let count = 0;
// 3. budget을 넘지 않는 범위에서 데려와보자
for(let i = 0; i < arr.length; ++i) {
if(answer+arr[i] <= budget) {
answer += arr[i];
count = i;
}
}
// 4. 쓸 수 있는 budget과 남아있는 예산 요청 확인
// console.log('이 인덱스까지 지원해줬음 : ',count); //
// console.log(budget-answer); // 남은 돈
// let money = budget-answer;
return count+1;
}
solution([1,3,2,5,4], 9);
댓글 : 소팅한 d의 첫 원소가 budget보다 큰 경우도 처리해 주니 해결됩니다.
참고하셨으면 좋겠습니다.
와우!!!!!
for문이 안돌아도 count +1해서 리턴해서 문제가 있었나봅니당.
function solution(d, budget) {
var answer = 0;
//1. 각 원소의 합을 구해보장
console.log(d.reduce((acc, cur)=> acc+cur)); // 15
// 2. 제일 작은 애부터 차례로 담아보자
console.log(d.sort((a,b)=>a-b));
let arr = d.sort((a,b)=>a-b);
let count = 0;
// 3. budget을 넘지 않는 범위에서 데려와보자
if(arr[0]>budget) return 0;
for(let i = 0; i < arr.length; ++i) {
if(answer+arr[i] <= budget) {
answer += arr[i];
count = i;
}
}
// 4. 쓸 수 있는 budget과 남아있는 예산 요청 확인
console.log('이 인덱스까지 지원해줬음 : ',count); //
console.log(budget-answer); // 남은 돈
let money = budget-answer;
return count+1;
}
+5 1124점~~
항상 질문하기에서 힌트를 얻는다는 문제가...
// 시간초과 런타임 에러
function solution(s) {
let answer = '';
console.log(s[0].toUpperCase())
console.log(s.split(" "))
let arr = s.split(" ");
let array = [];
for(let i = 0; i<arr.length; ++i) {
answer = '';
answer += arr[i][0].toUpperCase()
answer += arr[i].slice(1,arr[i].length).toLowerCase();
array.push(answer);
}
console.log(array)
return array.join(" ");
}
공백 기준으로 쪼개고 배열 하나씩 들어가서 맨 앞글자와 그 뒤에 있는 글자를 대문자, 소문자로 넣어주고 그 배열을 다시 문자열로 합쳐주는 방식인데...안되네욤
공백이 여러개 들어갔을 때 undefined가 뜬다.
'' <-에 대해서 toUpperCase()하니까 오류가 난 것
function solution(s) {
let answer = '';
let arr = s.split(" ");
let array = [];
for(let i = 0; i<arr.length; ++i) {
answer = '';
if(arr[i]!=='') {
answer += arr[i][0].toUpperCase()
answer += arr[i].slice(1,arr[i].length).toLowerCase();
}
array.push(answer);
}
return array.join(" ");
}
solution("3people unFollowed me");
solution("h i i");
멘토님 풀이
728x90
반응형