Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 야놀자x패스트캠퍼스
- sqld 55회
- 국비지원취업
- 성능개선
- 리액트오류
- 2024 sqld
- 국비지원
- map
- firebase rules
- css 꿀팁
- 패스트캠퍼스
- git
- 프론트엔드개발자
- 프론트엔드부트캠프후기
- promise 비동기처리
- github
- js CRUD
- 부트캠프 취업후기
- 퍼블리셔 이직후기
- TypeScript
- 부트캠프
- Where
- 야놀자 fe 1기
- Filter
- sqld 자격증 시험
- 패스트캠퍼스 부트캠프
- foreach
- react hook
- reduce
- Firebase
Archives
- Today
- Total
Tech is created to fix problem
[프로그래머스 Lv.1] 과일장수 Slice, 배열 순회 for of 본문
반응형
1. 문제
2. 생각흐름
1) 먼저 배열에 있는 숫자들을 큰 숫자 순서대로 새 배열에 m개씩 쪼개서 푸시해야겠다는 생각이 들었다
2) 큰 숫자들을 순서대로 정렬하려면? sort 메소드를 써야겠고
3) m개씩 쪼개서 새 배열에 어떻게 담아줄까 고민하다가 slice 메소드를 검색했고
4) slice 로 쪼갠 이후에 각 배열들을 최소값*길이값 연산해주는 순서대로 생각했다
여기서 slice 가 잘 생각이 나지 않았다.
slice 를 많이 써보지 않아서 어떤 메소드가 필요할지 검색의 도움을 받았고
4) 에서 [[배열], [배열], [배열]] 각 배열들을 for 문으로 순회하는 것에서 한 번 더 막혔다
이 또한 배열안의 배열을 순회하는 것을 검색했고, for of 를 보고 아,, 이럴 때 사용할 수 있지!! 싶었다
오류 1)
매개변수 충돌!!
매개변수로 score 를 받았는데, 그것과 별개로 함수 블록 안에서 let score 라는 이름을 선언했었다
그랬더니 에러가 나서 검색해보니까 매개변수와 새 변수 선언의 이름이 겹치면 충돌하기 때문에
왠만하면 같은 이름을 짓지 않아야 한다고 한다
오류 2)
답안을 제출할 때, console.log() 로 중간 중간 답을 확인한 것들을 그대로 제출했는데
출력물이 너무 많다고 오류가 난다고 한다. 그래서 콘솔들을 다 지워주었더니 잘 제출이 되었다!!
3. 풀이
function solution(k, m, score) {
var answer = 0;
let box = [];
// 배열을 오름차순으로 정렬
const array = score.sort((a,b) => b - a)
// 오름차순된 배열을 m개씩 자르기
for(i = 0; i < array.length; i += m){
box.push(array.slice(i, i + m));
}
// 각 잘라진 배열의 최솟값과 갯수 곱하기
for(const subArray of box){
if (subArray.length == m){
const minValue = Math.min(...subArray);
answer += minValue * m
}
}
return answer;
}
solution(3,4,[4, 1, 2, 2, 4, 4, 4, 4, 1, 2, 4, 2])
4. 알게 된 점
slice 와 for of 의 쓰임새를 다시 한 번 알게되었다
반응형