[ 프로그래머스 ] #159994 : 카드 뭉치 - JAVA

🔗 카드 뭉치

import java.util.*;
class Solution {
    public String solution(String[] cards1, String[] cards2, String[] goal) {

        Deque<String> stack1=new ArrayDeque<>();
        Collections.addAll(stack1,cards1);

        Deque<String> stack2=new ArrayDeque<>();
        Collections.addAll(stack2,cards2);

        Deque<String> queue=new ArrayDeque<>();
        Collections.addAll(queue,goal);

        while(!queue.isEmpty()){
            String g=queue.poll();

            if(!stack1.isEmpty() &&stack1.peek().equals(g)){
                stack1.pop();
            }else if(!stack2.isEmpty() &&stack2.peek().equals(g)){
                stack2.pop();
            }
            else{
                return "No";
            }
        }
        return "Yes";
    }
}

Array ➡️ Deque

1. Collections.addAll() 사용

Deque<String> stack1=new ArrayDeque<>();
Collections.addAll(stack1,cards1);

image

2. List 로 초기화

Deque<String> stack2=new ArrayDeque<>(Arrays.asList(cards1));

image

3. 반복문으로 직접 추가

  • 이 방법이 가장 빠름
Deque<String> stack3=new ArrayDeque<>();

for(String s : cards1) {
    stack3.push(s);
}

image