728x90
테스트케이스 최대 소요시간 : 0.07ms
제출답안
function solution(food) {
let front = "" ; //앞부터
let back = "" ; //뒤에서부터
for(let i = 1 ; i < food.length ; i++){
// 문자열 i 를 수량/2 의 몫만큼 반복해서 입력
let string = (i+"").repeat(Math.trunc(food[i]/2));
front += string;
back = string+back;
}
return front+"0"+back;
}
이걸 더 짧게 back을 따로 만들지 않고,
[...front].reverse().join('')
식으로 쓴 것을 보았다. 함수의 세계는 무궁무진.
- [...front] = front문자열을 한 글자씩 떼서 배열화한다.
- 배열.reverse() = 배열의 순서를 거꾸로 뒤집는다.
- 배열.join(문자1) = 배열의 값들의 사이에 문자1을 집어넣어 한 문자열로 합친다.
그런데 위 내용처럼 쓰면 전체 시간이 3배정도 더 소요되어서 알아도 안 썼을 것 같다.
숫자를 문자열로 바꿀 때도 나는 숫자+"";라고 썼었는데 String(숫자) 가 따로 있었다.
728x90
'코테' 카테고리의 다른 글
[JS] 가장 많이 받은 선물_충격적인 얕은 복사 (0) | 2024.03.12 |
---|---|
[JS] 가장 가까운 같은 글자 (0) | 2024.03.10 |
[JS] 삼총사 (프로그래머스) (0) | 2024.03.08 |
[js] 달리기 경주_그런데 이제 자괴감을 곁들인 (0) | 2024.03.07 |
[JS] 붕대감기 (해설포함) (1) | 2024.03.01 |
댓글