2023년 03월 18일 토요일 - 힘드러잉


오늘 올려볼 문제는 1472번 Design Browser History 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

어제 취해서 올리는걸 까먹음..


입력


이 문제는 입력을 설명하기가 복잡하다 문제를 참고해주길 바란다.



풀이 및 코드


문제 제목에서도 볼 수 있듯이 Browser History를 구현하는 문제이다.


오늘은 처음부터 정답을 생각해냈다.

Stack 2개 사용하는 식으로 문제를 풀면된다!


이제 코드를 봐보자!


풀이코드

class BrowserHistory {
    Stack<String> backUrls = new Stack<>();
    Stack<String> forwardUrls = new Stack<>();
    String currentUrl;

    public BrowserHistory(String homepage) {
        currentUrl = homepage;
    }
    
    public void visit(String url) {
        forwardUrls.clear();
        backUrls.push(currentUrl);
        currentUrl = url;
    }
    
    public String back(int steps) {
        int size = Math.min(backUrls.size(), steps);
        
        for(int i = 0; i < size; i++) {
            forwardUrls.push(currentUrl);
            currentUrl = backUrls.pop();
        }
        
        return currentUrl;
    }
    
    public String forward(int steps) {
        int size = Math.min(forwardUrls.size(), steps);
        
        for(int i = 0; i < size; i++) {
            backUrls.push(currentUrl);
            currentUrl = forwardUrls.pop();
        }
        
        return currentUrl;
    }
}




제출 화면

leetcode 문제 맞았습니다


알고리즘 공유회가 스터디가 되어가는게 눈에 보이기 시작한다.

열심히 진행해서 모두에게 도움되는 스터디로 만들어봐야지!!


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts