요르딩딩

프로그래머스 : 짝지어 제거하기 (stack) 본문

[코딩테스트]/문제풀이

프로그래머스 : 짝지어 제거하기 (stack)

요르딩딩 2022. 5. 17. 17:32
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
반응형
Comments