본문 바로가기
코테

[JS] 푸드 파이트 대회

by zenna 2024. 3. 7.
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

댓글