💻 Algorithm

[알고리즘] 정렬 개념 정리

date
Sep 7, 2023
slug
algorithm-sort
author
status
Public
tags
Tech
summary
type
Post
thumbnail
updatedAt
Sep 9, 2023 12:34 PM
category
💻 Algorithm

정렬

어떤 key를 기준으로 정렬하는지 알아내는게 핵심!
 
# 오름차순 정렬 sorted(list, key = lambda(x:(x[0]))) # 내림차순 정렬 sorted(list, key = lambda(x:(-x[0])))
 

파이썬은 시간초과 주의

import sys n = int(sys.stdin.readline())
import sys n, p, m = map(int(sys.stdin.readline().split()))
 

sort, sorted

.sort() : 원래 리스트를 변경시킴.
sorted(list) : 리스트를 변경 시키지 않음.
 

대소문자 str 정렬

리스트.sort()는 대문자 ABCD 순으로 다 나온 후에, 소문자 abcd 순으로 정렬이 됨.
 

⭐ 계수정렬

메모리를 매우 조금 사용해야 할 때 유용한 방법.
step1. 배열과 요소의 개수를 셀 배열 생성
cnt = [0]*(max(arr)+1)
step2. for 문을 돌면서 데이터에 해당하는 인덱스에 +1씩 함.
for i in range(len(arr)):
cnt[arr[i]] += 1
step3. cnt의 크기만큼 반복하고, cnt 하나의 인덱스 값만큼 반복하여 cnt의 값만큼 출력한다.
0~cnt의 크기까지 반복
cnt의 값만큼 0~cnt의 위치 출력
for i in range(len(arr)):
for _ in range(arr[i]):
print(i, end=””)
 

딕셔너리

  • dict[key] = 1 새로운 딕셔너리 값 생성함.
  • .items()
    • 모든 딕셔너리 정보 반환
  • .keys()
    • 딕셔너리의 key 값 반환
  • .values()
    • 딕셔너리의 value 값 반환