코딩테스트

[JAVA] DFS 깊이 우선 탐색 Queue로 구현

dackyy 2022. 7. 30. 23:16
반응형
package Algorithm;

import java.util.LinkedList;
import java.util.Queue;

class StackQueue{
    Queue<Index> mainQueue;
    Queue<Index> tempQueue;

    public StackQueue() {
        mainQueue = new LinkedList<>();
        tempQueue = new LinkedList<>();
    }

    public void push(Index a) {
        mainQueue.offer(a);
    }

    public Index pop() {
        Index result=null;

        if(mainQueue.isEmpty()) {
            return null;
        }

        while(mainQueue.size() != 1) {
            tempQueue.offer(mainQueue.poll());
        }
        result = mainQueue.poll();

        //나머지를 다시 main큐로 옮겨준다.
        if(!tempQueue.isEmpty()) {
            while(!tempQueue.isEmpty()) {
                mainQueue.offer(tempQueue.poll());
            }
        }

        return result;
    }
}

class Index {
    private int x;
    private int y;

    public Index() {
    }

    public Index(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }
    public void setX(int x) {
        this.x = x;
    }
    public int getY() {
        return y;
    }
    public void setY(int y) {
        this.y = y;
    }
}
반응형