본문 바로가기
Java

[프로그래머스] 더한 원소들의 합

by hunbal 2023. 10. 17.
SMALL

문제 설명 및 예시

주어진 문자열 중 Z가 있다면 Z 바로 전에 나온 숫자를 제외하고 나머지 숫자를 연산하는 문제이다.

 


풀이

단순 반복문과 조건문으로 코드를 작성하다가 Stack을 사용하면 효율적으로 해결할 수 있지 않을까? 생각했다. 

마침 얼마 전에 Stack에 대해 공부하고 포스팅을 했으니 문제에 대입해보기로 하였다.

 

1. 연산을 위해 Integer 타입의 Stack을 생성한다.

2. 공백을 기준으로 나눈 문자열 s에서 반복문을 활용하여 "Z"를 만나면 stack.pop()으로 *최상위 스택 요소를 제거한다.

    "Z"가 아니라면 Stack에 요소를 삽입한다.

    * Z 바로 전에 나온 숫자를 제거해야 하므로 stack.pop() 메서드가 적절하다.

3. "Z"와 "Z" 전에 나온 숫자를 제거한 나머지 요소들을 더해준다.

 

 

특정 문자열 바로 전 요소를 제거한다는 점에서 Stack 사용에 대한 힌트를 얻었고, 테스트에 무난하게 통과하였다.

이전 Stack 포스팅에서 활용법에 대해 고민해봐야겠다는 내용을 작성했는데  테스트문제에 대입하고 결과물까지 확인할 수 있어 좋았다 👍

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

댓글