1. 문제링크
https://school.programmers.co.kr/learn/courses/30/lessons/134240
2. 입 출력 예시
food | result |
[1, 3, 4, 6] | '1223330333221' |
[1, 7, 1, 2] | '111303111' |
3. 풀이
function solution(food) {
// 짝수가 아니면 제외한다. 둘이서 먹을 수 없다.
const useFood = food.map((el) => Math.floor(el / 2));
// 빈 배열을 선언하고,
const result = [];
// 가장 앞의 물인 0을 제외, 반복문을 통해 물을 뺀 index + 1을 result에 push한다.
const arr = useFood.slice(1).map((el, index) => {
let i = 0;
while(i < el) {
i++;
result.push(index + 1)
}
})
// 그리고 완성된 result를 복사하여 반대로 뒤집는다.
// 여기서 result를 복사하지 않으면 원본 배열도 뒤집히기 때문에 복사를 꼭 해준다.
const reverseArr = result.slice().reverse();
// 물인 0을 push하고,
result.push(0)
// result와 뒤집힌 result를 합친후 join으로 string형태로 바꿔준다.
return result.concat(reverseArr).join('');
}
- isNull은 너무 간단하여 다시금, 간단한 문제도 풀어보았다.
- while문을 쓴 게 아쉽다. map이나 reduce로 한 번에 한 줄로도 처리할 수 있을 법하다.
'Coding > Today I Learned' 카테고리의 다른 글
2023.06.23(Fri.) <노션 주간 업무 보고 템플릿 공유> (0) | 2023.06.23 |
---|---|
2023.06.19(Mon.) <React 모바일 웹 환경에서 키패드 처리> (0) | 2023.06.19 |
2023.06.10 (Mon.) lodash - isNull (0) | 2023.06.12 |
2023.06.10 (Sat.) lodash - chunk (0) | 2023.06.10 |
2023.06.10(Sat.) lodash <개요> (0) | 2023.06.10 |