본문 바로가기

CS?/코딩끄적

[python : 자료구조] 선형 리스트 자리찾기 및 삽입

반응형

자료구조 중 하나인 선형 리스트를 이용해 구현한 이름과 연락횟수 나열 리스트이다.

이름과 연락횟수를 입력하면 리스트에서 연락횟수 순으로 정렬할 수 있도록 하는 코드를 작성하였다.

공백 입력 시 프로그램이 종료될 수 있도록 설정하였다.

 

초기 리스트는 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"를 학습하여 작성하였습니다.

 

IT CookBook, 파이썬 자료구조와 알고리즘 for Beginner

기본 자료구조와 알고리즘을 쉽게 풀어낸 입문서입니다. 기본 → 간단 구현 → 일반 구현 → 응용 순으로 체계적으로 학습할 수 있습니다.

m.hanbit.co.kr

 

반응형