상세 컨텐츠

본문 제목

Algorithm with python

Algorithm

by 쑤야. 2024. 2. 1. 12:26

본문

 

파이썬으로 알고리즘을 풀기 위해 필요한 개념들을 정리합니다.

 

문자열


  • 문자열의 대/소문자화.
.upper() # 대문자
.lower() # 소문자
  • 특정 문자를 기준으로 문자열 분리
.split(문자)
  • 문자열의 리스트화
list(문자열)
  • 리스트화된 문자열 다시 문자열로 변환하기
''.join(문자열 배열)
  • 알파벳으로만 구성되어있는지 확인
문자열.isalpha()

 

배열


  • 원소 추가
배열.append(원소)
  • 마지막 원소 삭제
배열.pop()
del 배열[-1]
  • 첫 번째 원소 삭제
삭제한 원소 = 배열.pop(0) #삭제한 원소를 반환한다.
  • 조건을 충족하는 첫 번째 인덱스 찾기
arr.index(원소 값)
  • 정렬
배열.sort() # 오름차순
배열.sort(reversed=True) # 내림차순
  • 원소의 길이로 정렬
arr.sort(key=len)
  • 정렬 후, 새로운 배열로 반환
sorted(배열) #오림차순
sorted(배열, reverse=True) #내림차순
  • 다중 정렬
 //1번 인덱스로 내림차순. 만약 동일하다면 0번 인덱스로 오름차순 정렬
sorted(genre[g[0]], key=lambda x: (x[1], -x[0]), reverse=True)
  • map으로 배열 값 변환하기
list(map(int, 배열)) # str을 int로 변환
list(map(lambda x:x-1, 배열)) #원소값을 -1 시킨다
  • 필터문
list(filter(lambda n : 조건문 ,arr))
  • 커스텀 함수로 정렬
import functools

def comparator(a,b):
    if a+b > b+a :
        return 1
    elif a+b < b+a:
        return -1
    else:
        return 0

def solution(numbers):
    n = list(map(str,numbers))
    n = sorted(n, key=functools.cmp_to_key(comparator), reverse=True)

 

딕셔너리


  • 빈 딕셔너리 선언.
cache = {}
  • 딕셔너리에 값이 존재하는지 체크.
if 키 in 딕셔너리
  • 최소값을 가지는 키 값을 반환
min(딕셔너리, key=딕셔너리.get)
  • 딕셔너리에서 키 값을 제거
del 딕셔너리[키 값]
  • 키만 정렬
sort = sorted(map)
  • 원소 값 기준으로 정렬
sort = sorted(map.items(), key = lambda x: x[1], reverse=True) # x[1]이 key의 value 값 의미
  • 원소 값이 특정 조건을 모두 충족하는지 점검
all(x >= 0 for x in map.values())

 

Set


  • 빈 자료형 선언
speak = set()
  • 원소 추가
speak.add(원소)
  • 원소 삭제
speak.remove(원소)

 

진수


  • 10진법 → 2진법
format(숫자, 'b')
  • 2진법 → 10진법
int(2진법 문자열, 2)

 

기타


  • 재귀 한도 초과 방지 코드
import sys
sys.setrecursionlimit(200000)
  • 순열
import itertools

for permutation in list(itertools.permutations(w, n)):
  • 조합
import itertools

for combination in list(itertools.combinations(w, n)):

관련글 더보기