08
28

https://school.programmers.co.kr/learn/challenges?tab=algorithm_practice_kit

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

ํ‘ธ๋Š” ๋™์•ˆ ์‚ฌ๊ณ ๊ณผ์ • ๋ฐ ๊ฐœ์„ ์ 

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๋„ ์žˆ์–ด์„œ ๊ฐ’์ด ํ๋‚˜ ์Šคํƒ์— ํฌํ•จ๋˜์–ด์žˆ๋Š” ์ง€ ๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๋„์›€์ด ๋๋‹ค๋ฉด ๋Œ“๊ธ€์ด๋‚˜ ๊ณต๊ฐ ๋ฒ„ํŠผ ํ•œ ๋ฒˆ์”ฉ ๋ˆ„๋ฅด๊ณ  ๊ฐ€์ฃผ์„ธ์š”!

 

๋ฐ˜์‘ํ˜•
COMMENT