반응형
자료구조 중 하나인 선형 리스트를 이용해 구현한 이름과 연락횟수 나열 리스트이다.
이름과 연락횟수를 입력하면 리스트에서 연락횟수 순으로 정렬할 수 있도록 하는 코드를 작성하였다.
공백 입력 시 프로그램이 종료될 수 있도록 설정하였다.
초기 리스트는 lis로 설정되어 있으며 이 리스트에서 추가가 이뤄진다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
def input_data(friend, count):
if count <0:
print("연락 횟수는 0과 같거나 커야합니다.\n다시 입력해주세요.")
return
cnt = 0
lis.append(None) #리스트 맨 뒤에 공백을 추가해 새롭게 들어갈 원소 포함한 길이 반영
list_len = len(lis)
#-1까지 탐색하게 될 경우 맨 앞과 맨 뒤가 연결되기 때문에 0 전까지 탐색할 수 있게 하
for i in range(list_len-1,0,-1):
if count >= lis[i-1][1]:
lis[i]=lis[i-1]
lis[i-1] = None
cnt +=1
else : break
position = list_len-cnt-1
lis[position]=(friend,count)
lis = [('다현',200),('정연',150),("쯔위",90),('사나',30),('지효',15)]
if __name__=="__main__":
while True:
print("종료를 원하면 엔터를 눌러주세요")
name = input("추가할 친구--> ")
#엔터만 입력시 종료
if name == '':
break;
cnt = int(input("카톡 횟수--> "))
input_data(name, cnt)
print(lis)
|
cs |
본 포스팅은 "파이썬 자료구조와 알고리즘 for beginner"를 학습하여 작성하였습니다.
반응형
'CS? > 코딩끄적' 카테고리의 다른 글
[python] escape 문자 & escape 문자 무시하기 (0) | 2021.12.29 |
---|---|
[python] 리스트 다항식 계산하기 (list 자료구조 연습) (0) | 2020.06.12 |
[Python] 전치행렬 구현 코드 (numpy 없이 구하기) (0) | 2020.04.06 |