Supersett
개발자의 하루
Supersett
Blockchain Dev
전체 방문자
오늘
어제
  • 분류 전체보기
    • 프론트
    • 회사생활
    • 블록체인
    • 프로젝트
      • 창업 프로젝트 (DRF + AWS)
      • Spring 프로젝트
    • [중앙대]멋쟁이 사자처럼
    • 기술서적
    • Problem Solving
      • 알고리즘
    • 일기장
      • 하루 정리
      • 삽질 일기
      • 조급할 때 눌러보기

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 멋쟁이 사자처럼 면접
  • 블록체인 서버설계
  • 신입개발자
  • 국비교육
  • 멋쟁이사자처럼 중앙대
  • Multichain API
  • 블록체인정보가공
  • 멋쟁이 사자처럼 서류
  • DEPROMEET
  • 글리치해커톤
  • 멋쟁이 사자처럼
  • java
  • 국비
  • 멋사 중앙대
  • Near Explorer
  • 국비지원
  • 자바
  • 초보개발자
  • 컴퓨터학원
  • 디프만16기
  • 자바스크립트
  • 니어프로토콜
  • Luniverse
  • 면접준비
  • 프로젝트
  • 해커톤
  • 구글소셜로그인
  • 취업준비
  • Near Scan
  • 비트코인

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Supersett

개발자의 하루

Problem Solving/알고리즘

[알고리즘][왜이거써요?]list 와 deque, 분기를 잡자, 자주쓰는 list 함수

2022. 10. 6. 16:51

1. 이런 경우에는 list보다는 deque를 사용하는건 어떨까?

→ 첫번째 값을 넣고 뺴고를 자주 해야할 상황

첫번째 원소를 추가 삭제한다면 극명한 속도 차이가 발생

 

덱과는 다르게 python의 리스트는 fixed size memory blocks(array)로 구현되어 있습니다.

이름은 List여서 링크드 리스트처럼 보이지만 고정된 사이즈의 메모리를 갖는 array 형태입니다.

리스트의 마지막 원소를 삭제는 O(1)이지만, 아래 그림처럼 첫번째 원소를 삭제하면 삭제 후 모든 원소를 앞으로 이동시키기 때문에 시간 복잡도가 O(n)입니다. 

 

삽입, 삭제의 operation()이 앞, 뒤, 중간 등에서 발생한다면 list 보다는 deque 사용을 우선적으로 고려하는 것이 속도 측면에서는 훨씬 좋을 것

 

 

2. 분기(예를 들어, = 같은부분) 는 항상 유의하고 생각해 주어야한다 예외가 발생하기 마련

→ 반드시 잡아주자

 

3. 있는지 여부를 알고싶을땐, list 보다 set(집합) 을 사용하자

4. 자주 찾는 List 함수 

비어있는지 확인

	#if not st
        if len(st)==0:
            an.append(-1)

 

배열 뒤집기

list=[]

#원본은 안바뀜
list[::-1]

#원본 바뀜
list.reverse()

 

2차배열 sort

#첫번째 기준으로만 정렬
answer.sort(key=lambda x:(x[0]))

#[0] 기준으로만 역정렬
answer.sort(key=lambda x:(-x[0]))

#[0]으로 우선 정렬하고 그 안에서 [1]로 정렬
answer.sort(key=lambda x:(x[0],x[1]))

 

 

 

 

 

 

 

 

 

 

'Problem Solving > 알고리즘' 카테고리의 다른 글

[알고리즘] 코딩테스트 합격을 위한, 나만의 알고리즘 로드맵 설정하기  (1) 2022.10.26
[피드백] BFS문제 정리하기  (1) 2022.10.20
[백준][파이썬] 1662 - 압축  (0) 2022.07.13
[백준][파이썬] 2504 - 괄호의 값 (런타임에러 발생..해결)  (0) 2022.07.12
[백준] 1931 - 회의실 배정 (그리디 알고리즘)  (0) 2022.07.08
    'Problem Solving/알고리즘' 카테고리의 다른 글
    • [알고리즘] 코딩테스트 합격을 위한, 나만의 알고리즘 로드맵 설정하기
    • [피드백] BFS문제 정리하기
    • [백준][파이썬] 1662 - 압축
    • [백준][파이썬] 2504 - 괄호의 값 (런타임에러 발생..해결)
    Supersett
    Supersett
    하루를 돌아보고 공부한 티를 내기 위해 블로그를 만들었습니다.

    티스토리툴바