2023년 03월 18일 토요일 - 힘드러잉
오늘 올려볼 문제는 1472번 Design Browser History 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 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;
}
}
제출 화면
알고리즘 공유회가 스터디가 되어가는게 눈에 보이기 시작한다.
열심히 진행해서 모두에게 도움되는 스터디로 만들어봐야지!!
내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.