요르딩딩
프로그래머스 : 짝지어 제거하기 (stack) 본문
728x90
반응형
이번문제도 역시 레벨2 치고는 상당히 쉬운? 문제라고 생각한다.
다만, 여기서 실행시간 오류로 인해 스택을 써야하는 이슈가 있었다는 점을 생각하면, 어려운? 문제라고 생각 될 수도 있다.
처음에 문제를 풀때는 스택대신 ArrayList에 넣어 순서대로 비교하도록 구현였다.
역시 효율성 문제에서 이슈가 생겨 stack 활용하여 다시 구현하였다.
굳이 equals를 쓰기위해 String으로 변환하는 비효율적인 코드이지만, 나중에는 그냥 char로 두고 ==으로 비교하도록 해야겠다.
한번만 더 꼼꼼히 생각하자!!! 정답만 맞는다고 좋은 코드는 아니다!!!
import java.util.*;
class Solution {
public int solution(String s) {
int answer = -1;
char[] arr = s.toCharArray();
Stack st = new Stack();
for (int i = 0; i < arr.length; i++) {
if (st.isEmpty()) {
st.push(String.valueOf(arr[i]));
} else {
if (String.valueOf(st.peek()).equals(String.valueOf(arr[i]))) {
st.pop();
} else {
st.push(String.valueOf(arr[i]));
}
}
}
if(st.size() ==0) {
return 1;
}else {
return 0;
}
}
}
728x90
반응형
'[코딩테스트] > 문제풀이' 카테고리의 다른 글
프로그래머스 : k진수에서 소수 개수 구하기 (진수변환, 소수) (0) | 2022.06.16 |
---|---|
프로그래머스 : 뉴스 클러스터링 (레벨2) (0) | 2022.06.14 |
프로그래머스 : 폰캣몬 (Set) (0) | 2022.05.16 |
프로그래머스 : 괄호변환 (String.CharAt(), 재귀) (0) | 2022.05.13 |
프로그래머스 : 더 맵게 (우선순위 큐) (0) | 2022.05.13 |
Comments