링크드리스트에 관한 문제이다.
어렵지 않은 문제이지만 파이썬으로 링크드 리스트를 사용해 보는 것은 처음이어서 생소했다.
릿코드는 몬가 알고리즘의 정석 같은 문제들이 많은 것 같다.
정석대로 풀면 풀리는 경우가 많아서 몬가 행-복(?)하다. 미디엄이라서 그른가...
하지만 나는 코린이기 때문에 더욱 더 깔끔한 코드를 만들기 위해 노력해야한다!!!
런타임 맨날 나 뒤쳐져,,, 나도 상위 10퍼 런타임...
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
import copy
class Solution:
def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
num=1
node=copy.deepcopy(head)
while(node.next!=None):
node=node.next
num+=1
#print("num:",num)
#if num==1:
#return None
if num-n==0:
head=head.next
else:
ans=remove_elem(head,num-n)
#print(head)
return head
def remove_elem(node,num):
cnt=0
while(cnt<num-1):
node=node.next
cnt+=1
elem=copy.deepcopy(node)
elem=elem.next
#print(elem)
node.next=elem.next
#print(node)
return node
'취준 > 코테일지' 카테고리의 다른 글
1463번: 1로 만들기 (0) | 2021.01.26 |
---|---|
13904번: 과제 (0) | 2021.01.12 |
2293번: 동전 1 (0) | 2021.01.08 |
16206번: 롤케이크 (0) | 2021.01.07 |
17281번: ⚾야구 (0) | 2021.01.05 |