티스토리 뷰

 

 

선형 배열

배열이란 원소들을 순서대로 늘어놓은 것을 말한다.

 

arr = [1,2,3,4,5]

# index --> 0부터 시작
0,1,2,3,4

 

파이썬에서는 선형 배열로 리스트를 사용하는데 가장 큰 특징은 리스트 원소들의 데이터 타입이 각각 달라도 상관없다는 것이다. 

 

example_list = ['bob',1,3,True]

# 결과
['bob', 1, 3, True]

 

리스트(배열)의 연산

example_list = ['bob',1,3,True]

 

1.  example_list.append(5)

 

example_list.append(5)

# 결과
['bob', 1, 3, True, 5]

 

2.  example_list.pop()

 

example_list.pop()

# 결과
['bob', 1, 3, True]

 

  append() 와 pop() 은 리스트 길이와 무관하게 상수시간 내에 처리가 가능하다.  ☞ O(1)

 

3.  example_list.insert(3, '자료구조')

 

example_list.insert(3, '자료구조')

# 결과

['bob', 1, 3, '자료구조', True, 5]

 

4. del(example_list[2])

 

del(example_list[2])

# 결과

['bob', 1, '자료구조', True, 5]

 

  insert(index, value) 와 del(value) 은 리스트 길이와 비례하여 처리 시간이 소요된다.   O(N)

 

5. example_list.index('자료구조')

 

print(example_list.index('자료구조'))

# 결과

2

[ 문1. 정렬된 리스트에 원소 삽입 ]

# L: 리스트 X: 원소

# 내 풀이
def solution(L, x):
    for i in range(len(L)):
        if x <= L[i]:
            L.insert(i, x)
            return L
        
    # 주어진 리스트내에 존재하는 모든 원소들 보다 큰 정수가 주어지는 경우
    L.append(x)
    return L

[ 문2. 리스트에서 원소 찾아내기 ]

 

# L: 리스트 x: 값 
# 리스트에서 해당 원소가 존재하는 모든 인덱스 값 리스트로 반환

# 내 풀이
def solution(L, x):
    answer = []

    # 해당 x 값이 리스트에 존재하지 않는 경우
    if x not in L:
        return [-1]

    start, end = 0, len(L)
    try:
        while True:
            loc = L[start:end].index(x)
            answer.append(loc+start)
            start = loc+start+1

    except:
        return answer

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함