728x90
반응형
문제 설명
1. 문자열이 주어진다.
2. 문자열은 두개가 같으면 서로 사라지고, 그 앞뒤의 문자가 다시 붙는다.
3. 이게 끝까지 진행되어 모든 문자열이 사라지면 1, 남은 문자가 있으면 0을 return하면 된다.
풀이 과정
1. 선입 후출법을 통해 구현 가능하다.
2.
-> 가장 최근에 넣은 값 - 다음 값이 같은 경우 : 가장 최근에 넣은 값 삭제
-> 가장 최근에 넣은 값 - 다음 값이 다른 경우 : 다음 값을 넣기
3. 위의 process를 전체 문자열의 길이만큼 진행하면 구할 수 있다.
근데 솔직히 이게 왜 level2인지는 모르겠다... level1중에 이것보다 어려운 문제가 있던 것 같은데
코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
class Solution | |
{ | |
public int solution(String s) | |
{ | |
int answer = 0; | |
Stack<Character> word = new Stack<>(); | |
for(char i : s.toCharArray()){ | |
if(word.isEmpty() || word.peek() != i)word.push(i); // stack처음에는 값을 넣어주고, 맨 위값과 다음값이 다르면 다음값 추가 | |
else word.pop(); // 값이 있는 경우는 비교되는게 같은 값이면 입력하지 않고 맨 위를 삭제하면 된다. | |
} | |
if(word.isEmpty()) answer = 1; | |
return answer; | |
} | |
} |
반응형
'알고리즘 공부' 카테고리의 다른 글
[백준 2468번] 안전 영역 - java (0) | 2021.08.05 |
---|---|
[백준 4963번] 섬의 개수 - java (0) | 2021.08.04 |
[프로그래머스] 소수 만들기 - java (0) | 2021.06.22 |
[프로그래머스] 키패드 누르기 - java (0) | 2021.06.20 |
[백준 15486번] 퇴사2- java (0) | 2021.06.07 |