java/Exam
프로그래머스 : 컨트롤 제트
_Jay
2023. 1. 3. 14:47
package practice;
import java.util.ArrayList;
import java.util.Arrays;
class Solution {
public int solution(String s) {
int answer = 0;
ArrayList<String> list = new ArrayList<>(Arrays.asList(s.split(" ")));
for (int i = 0; i < list.size(); i++) {
if (list.get(i).equals("Z")) {
list.remove(i);
list.set(i-1,"0");
}
}
System.out.println(list);
Integer[] answerArr = list.stream().mapToInt(Integer::parseInt).boxed().toArray(Integer[]::new);
for (Integer integer : answerArr) {
answer+=integer;
}
return answer;
}
// 자료구조 스택을 이용해서 풀이를 나중에 다시 해보자.
}
public class Programmers {
public static void main(String[] args) {
String s = "10 Z 20 Z";
System.out.println(new Solution().solution(s));
}
}
자료구조 스택을 활용하여 다시 풀이 해보았다.
링크드 리스트는 스택을 구현한 클래스 이기 때문에 가능.
package practice;
import java.util.LinkedList;
class Solution {
public int solution(String s) {
int answer = 0;
String[] strArr = s.split(" ");
LinkedList<String> list = new LinkedList<>();
for (int i = 0; i < strArr.length ; i++) {
if (strArr[i].equals("Z")) {
list.pop();
}else{
list.push(strArr[i]);
}
}
System.out.println(list);
for (String s1 : list) {
answer+=Integer.parseInt(s1);
}
return answer;
}
}
public class Programmers {
public static void main(String[] args) {
String s = "1 2 Z 3";
System.out.println(new Solution().solution(s));
}
}
