나는 이렇게 학습한다/Algorithm & SQL

선형배열

daco2020 2022. 1. 25. 11:47
반응형

배열이란?

배열이란 연관된 데이터를 하나의 변수에 그룹핑해서 관리하기 위한 방법

 

 

리스트 길이과 관계 없이 빠르게 실행 결과를 보게되는 연산들

  • 요소 마지막에 추가 .append('삽입할 요소')
  • 요소 마지막 혹은 지정된 인덱스에서 꺼내기 .pop('꺼낼 인덱스')

 

 

리스트의 길이에 비례해서 실행 시간이 걸리는 연산들

  • 요소 삽입하기 '리스트명'.insert('인덱스', '삽입할 요소')
  • 요소 삭제하기 del('리스트명['인덱스']')

리스트의 길이에 실행 시간이 비례.

오래걸리는 이유는? 리스트의 중간이 수정되어 전체 인덱스가 변경되기 때문.

 

 

추가 다른 연산

  • 요소 탐색하기: '리스트명'.index('찾을 요소')

 

 


 

 

 

 

실습1. 리스트 L 에 정수 x를 숫자 크기에 알맞게 넣는 코드

def solution(L, x):
    for i, l in enumerate(L):
        if l > x:
            L.insert(i, x)
            break

    L.append(x)
    return L

 

 

 

실습2. 리스트 L 에 정수 x의 인덱스를 찾는 코드

def solution(L, x):
    answer = [] 
    
    for i, v in enumerate(L):
        
        if not x in L:
            answer.append(-1)
            break
            
        elif x in L[i:i+1]:
            # answer.append((L[i:i+1].index(x)+i))
            answer.append(i) # 11번 라인과 동일한 값이다.
    
    return answer

 

컴프리핸션을 사용하면 이렇게도 줄일 수 있다.

def solution(L, x):
    answer = [i for i, v in enumerate(L) if v == x]     
    return answer or [-1]
반응형

'나는 이렇게 학습한다 > Algorithm & SQL' 카테고리의 다른 글

약수의 합  (0) 2022.01.26
이상한 문자 만들기  (0) 2022.01.25
정렬(sort)과 탐색(search)  (0) 2022.01.25
자릿수 더하기  (0) 2022.01.24
자연수 뒤집어 배열로 만들기  (0) 2022.01.24