본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 69 - 컨트롤 제트)

728x90
# 문제

숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요.



# 답안

// 1. 입력: s => 숫자, Z가 공백으로 구분되어 담긴 문자열
// 2. 출력: 덧셈 뺄셈 한 값

// split으로 공백 기준으로 문자열을 쪼갠다. ["1","2","Z","3"]
// count = 0
// for문 돌릴건데, 문자열 splitedArray[i]를 Number로 바꾸고 count에다가 더하기
// if Array[i] === Z 이면, splitedArray[i-1]를 뺀다. 


function solution(s) {
  const splitedArray = s.split(" ");

  let count = 0;

  for (let i = 0; i < splitedArray.length; i++) {
    if (splitedArray[i] === "Z") {
      count -= parseInt(splitedArray[i - 1]);
    } else {
      count += parseInt(splitedArray[i]);
    }
  }
  return count;
}
728x90