본문 바로가기

TIL(Today I Learned)

99클럽 코테 스터디 5일차 TIL + LeetCode 225 (Implement Stack using Queues, java)

반응형

 

오늘의 학습 키워드

  • 스택

문제 탐색하기

문제

 

문제 풀이 설계하기

이 문제를 풀기 위해서는 큐와 스택의 개념을 이해하고 있어야합니다. 

 

Queue 란?

선입 선출을 기반으로 동작하는 자료 구조 이고 즉, 먼저 들어간 원소가 제일 먼저 나오는 구조입니다.

 

Stack 이란?

후입 선출을 기반으로 동작하는 자료 구조 이며 즉, 나중에 들어간 원소가 제일 먼저 나오는 구조입니다.

 

코드

class MyStack{
	Queue<Integer> q1;
	Queue<Integer> q2;
	
	public MyStack() {
        q1=new LinkedList<Integer>();
        q2=new LinkedList<Integer>();
    }
    
    public void push(int x) {
        if(q1.isEmpty()) {
        	q1.add(x);
        	while(!q2.isEmpty()) {
        		q1.add(q2.poll());
        	}
        }
        else if(q2.isEmpty()) {
        	q2.add(x);
        	while(!q1.isEmpty()) {
        		q2.add(q1.poll());
        	}
        }
    }
    
    public int pop() {
    	if(q1.isEmpty()) {
    		return q2.poll();
    	}
    	else {
    		return q1.poll();
    	}
        
    }
    
    public int top() {
    	if(q1.isEmpty()) {
    		return q2.peek();
    	}
    	else {
    		return q1.peek();
    	}
    }
    
    public boolean empty() {
        return q1.isEmpty() && q2.isEmpty();
    }
}

 

오늘의 회고

큐와 스택의 개념에 대해서 한번 더 짚어가는 기회가 되었고 큐를 통해서 스택을 구현할 수 있다는 것을 알 수 있어서 좋았습니다.
반응형