당근먹는하니
귀엽고 행복해
당근먹는하니
전체 방문자
오늘
어제
  • 분류 전체보기 (274)
    • 다람쥐🐿 (26)
    • C++ 공부빵야 (7)
    • 공부👻 (5)
    • 프론트엔드✏️ (228)
      • 코드캠프 (120)
      • 팀 프로젝트✨ (31)
      • 개인공부 (67)
    • 프론트엔드 - 바닐라js (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • javascript
  • 팀프로젝트
  • algorithm
  • 공통 컴포넌트
  • javascrpit
  • 팀플
  • 코딩 부트캠프
  • 프론트엔드
  • refreshtoken
  • 자바스크립트
  • 프로그래머스
  • 배열
  • 알고리즘
  • graphql
  • HTML
  • ssg
  • typescript
  • next.js
  • 배포
  • React-hook-form
  • 코딩
  • 회고
  • 팀 프로젝트
  • 리액트
  • emotion
  • CSS
  • react
  • 코드캠프
  • JS
  • 부트캠프

최근 댓글

최근 글

티스토리

250x250
반응형
hELLO · Designed By 정상우.
당근먹는하니

귀엽고 행복해

알고리즘 - 예산, JadenCase문자열 만들기
프론트엔드✏️/코드캠프

알고리즘 - 예산, 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");

 

 

헐 13점이나 준다!

 


멘토님 풀이

 

문자열은 이렇게 직접 변경하는 건 안된다.
replace를 사용해야 한다.
이럴 땐 변수값을 주고 변수값에 원본값 저장하고 그 원본을 대문자로 변경한 걸 넣어준다.

 

728x90
반응형
저작자표시 비영리 동일조건 (새창열림)

'프론트엔드✏️ > 코드캠프' 카테고리의 다른 글

220619 프론트엔드 부트캠프 : 주말, 카카오맵 마커 변경  (0) 2022.06.20
220617 프론트엔드 부트캠프 38일차: 카카오맵, SPA, MPA, callback-hell, promise, queue  (0) 2022.06.20
graphql-codegen 설치하기  (0) 2022.06.17
220616 프론트엔드 부트캠프 37일차 : 결제를 해보자!, 토스트와의 다툼, ...  (0) 2022.06.17
알고리즘 - 체육복 도난사건,,,!!!!!  (0) 2022.06.16
    '프론트엔드✏️/코드캠프' 카테고리의 다른 글
    • 220619 프론트엔드 부트캠프 : 주말, 카카오맵 마커 변경
    • 220617 프론트엔드 부트캠프 38일차: 카카오맵, SPA, MPA, callback-hell, promise, queue
    • graphql-codegen 설치하기
    • 220616 프론트엔드 부트캠프 37일차 : 결제를 해보자!, 토스트와의 다툼, ...
    당근먹는하니
    당근먹는하니

    티스토리툴바