https://school.programmers.co.kr/learn/challenges?tab=algorithm_practice_kit
ํธ๋ ๋์ ์ฌ๊ณ ๊ณผ์ ๋ฐ ๊ฐ์ ์
import java.util.*;
class Solution {
boolean solution(String s) {
boolean answer = true;
LinkedList<Character> stack = new LinkedList();
for(int i=0; i<s.length(); i++){
char tmp = s.charAt(i);
if(stack.isEmpty()){
if(tmp == ')') return false;
stack.add(tmp);
}
else if(stack.peekLast() != tmp){
stack.pollLast();
}else{
stack.add(tmp);
}
}
if(stack.size() != 0){
answer = false;
}
return answer;
}
}
์คํ ๋ฌธ์ ํ๋ฉด ๋ ์ค๋ฅด๋ ์ ํ์ ์ธ ๊ดํธ๊ฒ์ฌ ๋ฌธ์ ๋ค.
๋ช ๋ฌ์ HSAT๋ฌธ์ ์๋ ๊ดํธ๋ฌธ์ ๊ฐ ๋์์๋๋ฐ ๊ทธ ๋๋ ์์ธ์ฒ๋ฆฌ๋ฅผ ๊ผผ๊ผผํ๊ฒ ์ํด์ ํ๋ฆฐ ๊ธฐ์ต์ด ์๋ค...
# ์ถ๊ฐ ๊ณต๋ถ
ArrayDeque
ArrayDeque์ ์ฐ๋ฉด ์๋ฐฉํฅ ํ ๊ตฌํ์ฒด์ด๊ธฐ ๋๋ฌธ์ ํ๋ ์คํ ๋ชจ๋ ๊ฐ๋ฅํ๋ค.
ArrayDeque<String> deque = new ArrayDeque<>();
deque.addFirst("First"); // ์์ชฝ์ ์ถ๊ฐ
deque.addLast("Last"); // ๋ค์ชฝ์ ์ถ๊ฐ
deque.offer("Offered"); // ๋ค์ชฝ์ ์ถ๊ฐ (ํ์ฒ๋ผ ์ฌ์ฉ)
deque.push("Pushed"); // ์์ชฝ์ ์ถ๊ฐ (์คํ์ฒ๋ผ ์ฌ์ฉ)
deque.peekFirst();
deque.peekLast();
deque.pollFirst(); // ๊ธฐ๋ณธ๋์์
deque.pollLast();
deque.poll(), deque.pop(); // ์ฒซ๋ฒ์งธ ์์ ์ ๊ฑฐ -> push๊ฐ ์คํ์ฒ๋ผ ์ฐ์ธ๋ค๋ ์ด์
์ถ๊ฐ, ์ ๊ฑฐ ํ๋ ๊ฒฝ์ฐ๋ง ์ ์ตํ๋ฉด ๋๋ค.
First, Last๋ฅผ ์ฐ๋๊ฒ ์๋ฌด๋๋ ์ข ์์๋ณด๊ธฐ ์ฌ์์ ์์ฃผ ์ผ๋๋ฐ, ์์ผ๋ก๋ ํด๋น ๋ฉ์๋๋ฅผ ์ธ ๊ฒ ๊ฐ๋ค.
deque.contains("1");
deque.clear();
deque.removeIf(e -> e % 2 == 0); // ์ง์์ธ ์์ ๋ชจ๋ ์ ๊ฑฐ
contains๋ ์์ด์ ๊ฐ์ด ํ๋ ์คํ์ ํฌํจ๋์ด์๋ ์ง ๋ฐ๋ก ์ ์ ์๋ค.
๋์์ด ๋๋ค๋ฉด ๋๊ธ์ด๋ ๊ณต๊ฐ ๋ฒํผ ํ ๋ฒ์ฉ ๋๋ฅด๊ณ ๊ฐ์ฃผ์ธ์!
๋ฐ์ํ
'OJ๐ผ > Programmers ๊ณ ๋์ ํท' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LV.2][JAVA] H-Index (0) | 2024.09.01 |
---|---|
[LV.2][JAVA] ๊ฐ์ฅ ํฐ ์ (0) | 2024.08.30 |
[LV.3][JAVA] ๋ฒ ์คํธ ์จ๋ฒ (0) | 2024.08.27 |
[LV.2][JAVA] ๋ ๋งต๊ฒ (0) | 2024.08.27 |
[LV.2][JAVA] ์ ํ๋ฒํธ ๋ชฉ๋ก (0) | 2024.08.25 |