Brower History
class ListNode:
def __init__(self, val=0, prev=None, next = None):
self.val = val
self.prev = prev
self.next = next
class BrowserHistory:
def __init__(self, homepage):
self.head = self.current = ListNode(val=homepage)
def visit(self, url: str) -> None:
#current.next는 ListNode를 가리킨다.
self.current.next = ListNode(val=url, prev=self.current) #prev는 current가 가리키는 곳을 가리킨다.
self.current = self.current.next #current는 current.next를 가리킨다.
return None
def back(self, steps: int) -> str:
for _ in range(steps):
if(self.current.prev):
self.current = self.current.prev
else: #self.current.next == None 이라면
break
return self.current.val
def forward(self, steps: int) -> str:
for _ in range(steps):
if(self.current.next):
self.current = self.current.next
else: #self.current.next == None이라면
break
return self.current.val
browserHistory =BrowserHistory("leetcode.com")
browserHistory.visit("google.com")
browserHistory.visit("facebook.com")
browserHistory.visit("youtube.com")
print(browserHistory.back(1))
print(browserHistory.back(1))
print(browserHistory.forward(1))
browserHistory.visit("linkedin.com")
print(browserHistory.forward(2))
print(browserHistory.back(2))
print(browserHistory.back(7))
Brower History
보충설명1
보충설명2
보충설명3
보충설명4
'개발남노씨(Coding Test)' 카테고리의 다른 글
HashTable - Two Sum (과거인덱스, 지금인덱스) (0) | 2023.02.16 |
---|---|
Daily Temperatures - stack문제 (0) | 2023.02.16 |
올바른 괄호 - 심화(스택 문제) (0) | 2023.02.16 |
Linked List 2 - tail 추가 (0) | 2023.02.15 |
Linked List 1 (0) | 2023.02.03 |