프로그래머스 - 컨트롤 제트

남궁진 (jinvicky)·2026년 4월 8일

Problem


https://school.programmers.co.kr/learn/courses/30/lessons/120853

Solution


바로 전에 더했던 숫자를 뺀다는 말을 이해하는 데 시간이 걸렸다. 꼬아서 생각해서 길을 돌아간 듯 하다.

여하튼 문자열과 정수형의 형변환을 제대로 알고
Z가 나올 것을 대비해서 마지막 문자를 recent 라는 변수에 저장하고
continue문을 잊지 않고 쓴다면 해낼 수 있다.

s는 "Z"로 시작하지 않는다는 문제의 전제를 읽었기에 아래 코드를 계산식보다 먼저 작성할 수 있었다.

if(str.equals("Z")) {
	sum -= recent;
	continue;
}

history

처음에 잘못 이해해서 공백을 기준으로 배열로 파싱해야 하는데 그냥 char[]로 파싱을 해서 공백까지 정수형으로 변환되어 합계에 포함되어 괴물같은 값이 나왔었다.

Code


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;
    }
}
profile
문제를 차근차근 하나씩 해결하려고 합니다:)

0개의 댓글