
https://school.programmers.co.kr/learn/courses/30/lessons/120853
바로 전에 더했던 숫자를 뺀다는 말을 이해하는 데 시간이 걸렸다. 꼬아서 생각해서 길을 돌아간 듯 하다.
여하튼 문자열과 정수형의 형변환을 제대로 알고
Z가 나올 것을 대비해서 마지막 문자를 recent 라는 변수에 저장하고
continue문을 잊지 않고 쓴다면 해낼 수 있다.
s는 "Z"로 시작하지 않는다는 문제의 전제를 읽었기에 아래 코드를 계산식보다 먼저 작성할 수 있었다.
if(str.equals("Z")) {
sum -= recent;
continue;
}
처음에 잘못 이해해서 공백을 기준으로 배열로 파싱해야 하는데 그냥 char[]로 파싱을 해서 공백까지 정수형으로 변환되어 합계에 포함되어 괴물같은 값이 나왔었다.
class Solution {
public int solution(String s) {
int recent = 0;
int sum = 0;
for(String str : s.split(" ")) {
if(str.equals("Z")) {
sum -= recent;
continue;
}
int now = Integer.parseInt(str);
System.out.println(now); // 테스트용
sum += now;
recent = now;
}
return sum;
}
}