코딩테스트/프로그래머스
[Java] 프로그래머스 - 짝지어 제거하기 (2단계)
배똥회장
2022. 4. 26. 13:08
728x90
코딩 테스트 풀이 체크리스트 |
|
2시간 내에 풀었는가? | O |
본인의 실력으로 풀었는가? | O |
코딩테스트 연습 - 짝지어 제거하기
짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙
programmers.co.kr
import java.util.*;
class Solution {
public int solution(String s) {
char[] word = s.toCharArray();
Stack<Character> box = new Stack<>();
for (int i = 0; i < word.length; i++) {
char temp = (!box.isEmpty()) ? box.peek() : ' ';
if (temp == word[i]) {
box.pop();
} else {
box.push(word[i]);
}
}
return (!box.isEmpty()) ? 0 : 1;
}
}
정확성 테스트
테스트 1 〉 | 통과 (0.18ms, 71.2MB) |
테스트 2 〉 | 통과 (11.53ms, 72.4MB) |
테스트 3 〉 | 통과 (14.57ms, 88.5MB) |
테스트 4 〉 | 통과 (16.23ms, 80.2MB) |
테스트 5 〉 | 통과 (17.90ms, 98.1MB) |
테스트 6 〉 | 통과 (14.90ms, 76.5MB) |
테스트 7 〉 | 통과 (13.61ms, 80.2MB) |
테스트 8 〉 | 통과 (13.85ms, 80.4MB) |
테스트 9 〉 | 통과 (0.20ms, 76.9MB) |
테스트 10 〉 | 통과 (0.39ms, 76.9MB) |
테스트 11 〉 | 통과 (0.17ms, 73.3MB) |
테스트 12 〉 | 통과 (0.18ms, 76.6MB) |
테스트 13 〉 | 통과 (0.18ms, 74.5MB) |
효율성 테스트
테스트 1 〉 | 통과 (65.74ms, 63.2MB) |
테스트 2 〉 | 통과 (49.36ms, 58.2MB) |
테스트 3 〉 | 통과 (54.24ms, 60.9MB) |
테스트 4 〉 | 통과 (53.64ms, 60.9MB) |
테스트 5 〉 | 통과 (55.08ms, 60.6MB) |
테스트 6 〉 | 통과 (54.41ms, 61MB) |
테스트 7 〉 | 통과 (54.21ms, 60.3MB) |
테스트 8 〉 | 통과 (53.56ms, 60.6MB) |
스택에 한 글자씩 넣으면서 제일 위에 있는 글자와 넣을 단어가 동일하면
넣을 글자는 넣지 않고 넘어가고, 제일 위에 있는 글자는 꺼내서 없앤다.
그렇게 단어를 다 돌 때까지 반복한 후에 마지막에 만약에 스택이 비어있다면 1을 리턴하고 비어있지 않으면 0을 리턴
728x90