[프로그래머스/코딩테스트/Javascript] 컨트롤 제트

TED·2023년 10월 1일
0

Javascript CodingTest

목록 보기
39/63

< 오늘의 문제 >

컨트롤 제트

컨트롤 제트

function solution(s) {
    s = s.split(" ")
    while(s.includes('Z')) { // Z가 더이상 없을때까지 반복
        s.splice(s.indexOf('Z')-1,2) // Z가 있다면 인전 인덱스의 요소와 같이 삭제
    }
    return s.reduce((a,b) => a+Number(b), 0) // b는 문자열이기때문에 Number로 숫자형으로 변환
}
  • 나의 풀이

s = s.split(" "): 주어진 문자열 s를 공백을 기준으로 나누어 문자열 배열로 변환.
이것은 입력 문자열을 토큰으로 나누어 각 숫자와 "Z"를 분리하는데 사용.

while(s.includes('Z')) { ... }: "Z"가 배열 s에 포함되어 있을 때까지 반복.
이 부분은 "Z"를 처리하기 위한 반복문.

s.splice(s.indexOf('Z')-1,2): "Z"를 발견하면, 해당 "Z"와 바로 앞의 숫자를 배열에서 제거.
indexOf를 사용하여 "Z"의 인덱스를 찾고, splice를 사용하여 "Z"와 앞의 숫자를 제거.

return s.reduce((a,b) => a+Number(b), 0): 배열 s에 남아 있는 숫자를 합산하여 반환.
reduce를 사용하여 모든 숫자를 더하고, Number(b)를 통해 문자열을 숫자로 변환.

function solution(s) {
    const arr = s.split(" ");
    let answer = 0;
    
    arr.forEach((v, i) => {
        if(v === "Z") answer -= Number(arr[i-1]);
        else answer += Number(v);
    });
    
    return answer;
}
  • 다른 사람 풀이

이렇게 풀고 싶었는데, 한숨부터 나온다. 부럽다 이 분의 아타마...

profile
컴맹 개발 입문자

0개의 댓글