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
'Java' 카테고리의 다른 글
[프로그래머스] 전화번호 목록 (0) | 2023.10.23 |
---|---|
[프로그래머스] 추억 점수 (0) | 2023.10.19 |
[프로그래머스] 진료순서 정하기 (0) | 2023.10.16 |
[프로그래머스] A로 B 만들기 (0) | 2023.10.16 |
[프로그래머스] 중복된 문자 제거 (0) | 2023.10.16 |
댓글