📚 LECTURE
# [3] -> [4]
# data, next
class Node:
def __init__(self, data):
self.data = data
self.next = None
node = Node(3)
first_node = Node(4)
node.next = first_node
# print(node.next.data)
class LinkedList:
def __init__(self, data):
self.head = Node(data)
def append(self, data):
if self.head is None: # self.head 값이 None인 경우,
self.head = Node(data) # self.head에 Node의 data를 담아 대입해주고,
return # 그리고 나서, 함수 중단
self.head.next = Node(data)
cur = self.head # cur의 위치를 head로 지정 = [3]
while cur.next is not None: # cur의 next가 Node가 아닐 때까지
cur = cur.next # cur.next를 이용하여 cur의 위치를 한 칸씩 이동
cur.next = Node(data) # 끝에 도달했을 때, cur.next에 Node의 데이터를 담아서 대입
def print_all(self):
cur = self.head # cur에 self.head 저장
while cur is not None: # cur이 None이 아닐 때까지
print(cur.data)
cur = cur.next # cut을 next로 한 칸씩 이동
# head -> -> -> -> -> -> -> ->
# [3] -> [4] -> [5] -> [6] -> [new] (이 자리가 None임)
# [3] = cur인 경우, [4] = cur.next / [4] = cur인 경우, [5] = cur.next이다.
# 끝의 자리인 None까지 가려면, while cur.next == None: 사용.
linked_list = LinkedList(3)
linked_list.append(4)
linked_list.append(5)
linked_list.print_all()
문제점:
- 실행하면 3 4 5 가 출력되어야 하는데, 자꾸 3 5 5 가 출력된다.
시도:
- 아직 원인 파악 중ㅠ_ㅠ 하나하나 다시 뜯어서 주석까지 달아가며 살펴봤는데, 어디서 오류가 난 건지 모르겠다.
📑 FEEDBACK
백준 알고리즘 데일리 테스트 #2741 (우당탕탕 미션):
- 드디어 이번엔 풀이 검색하지 않고 혼자서 풀었다!
'정답입니다'가 한 번에 떴을 때 너무 기뻤다. 쾌감...👍
쉬운 난이도겠지만 처음으로 나 혼자 풀고 맞춘 거라 좋다ㅠㅠ
내가 쓴 답 :
# 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.
# 첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.
N = int(input())
for N in range(1, N + 1):
if N <= 100000:
print(N)
n = int(input())
for i in range(1, n+1): # 1부터 n까지
print(i)
처음엔 N <= 100000
조건을 왜 안 쓴 거지? 했는데, 문제를 다시 읽어보니 애초에 N의 조건값에 주어진 거라 따로 언급할 필요가 없어서인 것 같다.
아무튼 검색한 답도 내 답과 다르지 않아서 기쁘다! 앞으로도 빼먹지 말고 공부 열심히 해서 정답도 맞추고, 더 깔끔하게 다듬어진 코드를 만들어내야지!