해당 문제는 split과 반복문을 돌려 어려움 없이 풀었는데요.
문자열을 split을 사용해 공백 기준으로 나눈 후 for문을 돌리면서 누적 증가를 해주다가 Z를 만나면 이전의 값 만큼 빼주고 연산을 이어나가는 방식입니다.
그럼 해당 공식을 적용한 자바스크립트 버전을 소개해 드리겠습니다.
- 자바스크립트 버전
function solution(s) { // split 메서드로 공백을 기준으로 문자열 해제 let arr = s.split(" "); // 값들을 누적 할 변수 let sum = 0; // for문을 배열만큼 돌리면서 for(let i = 0 ; i < arr.length ; i++){ // 배열의 현재 i 번째 요소가 문자 'Z' 일 경우 if(arr[i] === 'Z'){ // sum(누적 합산)에서 Z(i)의 이전 요소(i-1)를 문자열에서 정수로 변환 후 sum에서 빼주고 합산. sum -= parseInt(arr[i-1]); // 다음 배열의 요소 searching continue; } // if문에 안걸리는 경우, 즉 Z를 만나지 않았다면 그대로 누적 합산 sum += parseInt(arr[i]); } // 도출된 sum을 반환 return sum; }
그리고 자바 버전으로 구현한 코드는 다음과 같습니다.
- 자바 버전
class Solution { public int solution(String s) { String[] arr = s.split(" "); int sum = 0; for (int i = 0; i < arr.length; i++) { if (arr[i].equals("Z")) { sum -= Integer.parseInt(arr[i - 1]); continue; } sum += Integer.parseInt(arr[i]); } return sum; } }