방명록
- [프로그래머스 / 자바] 컨트롤 제트2023년 10월 25일 09시 50분 32초에 업로드 된 글입니다.작성자: 민발자728x90
문제
숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해 보세요.
풀이
스택이용해서 풀어봤다. 인덱스 때문에 고생 좀 했다😂
import java.util.Stack; class Solution { public int solution(String s) { int answer = 0; String[] s1 = s.split(" "); Stack<Integer> numbers = new Stack<>(); for(int i = 0; i < s1.length; i++){ if(!s1[i].equals("Z")){ numbers.push(Integer.parseInt(s1[i])); } else { System.out.println(i+" "+s1[i]); if(numbers.size() >= 1){ numbers.pop(); } } } for (int i = 0; i < numbers.size(); i++){ answer+=numbers.get(i); } return answer; } }
참고할만한 다른 사람 풀이
import java.util.*; class Solution { public int solution(String s) { int answer = 0; Stack<Integer> stack = new Stack<>(); for (String w : s.split(" ")) { if (w.equals("Z")) { stack.pop(); } else { stack.push(Integer.parseInt(w)); } } for (int i : stack) { answer += i; } return answer; } }
728x90'기록 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / 자바] 세균 증식 (0) 2023.10.25 [프로그래머스 / 자바] 제곱수 판별하기 (0) 2023.10.25 [프로그래머스 / 자바] 중복된 문자 제거 (0) 2023.10.25 [프로그래머스 / 자바] 모음제거 (0) 2023.10.25 [프로그래머스 / 자바] 소인수분해 (0) 2023.10.25 다음글이 없습니다.이전글이 없습니다.댓글