본문 바로가기
개발/알고리즘

파이썬 알고리즘 꿀팁

by ny0011 2020. 12. 9.
반응형

파이썬을 파이썬답게 강의가 꽤나 유용해보여서 정리해보았다

programmers.co.kr/learn/courses/4008

 

파이썬을 파이썬답게

본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코

programmers.co.kr

 

 

container타입 데이터 unpacking

mingrammer.com/understanding-the-asterisk-of-python/

 

파이썬의 Asterisk(*) 이해하기

파이썬은 타 언어에 비해 비교적 연산자 및 연산의 종류가 풍부한 편이다. 특히 파이썬이 지원하는 많은 연산자중 하나인 **Asterisk(*)**는 단순히 곱셈

mingrammer.com

int함수는 진법 변환을 지원해줌

docs.python.org/3/library/functions.html#int

int(x, base = 10)

x는 string, bytes, bytearray여야 함

 

 

문자열 정렬 함수

docs.python.org/3/library/stdtypes.html?highlight=rjust#str.ljust

str.ljust(width[, fillchar])

- width : 문자열 총 길이, fillchar : str 길이보다 width가 클 때 어떤 문자로 채울지? default는 공백으로 채움

ljust : 왼쪽 정렬

center : 가운데 정렬

rjust : 오른쪽 정렬

 

string 모듈의 상수

docs.python.org/3.8/library/string.html

string.ascii_lowercase : 'abcdefghijklmnopqrstuvwxyz'

string.ascii_uppercase : 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

string.digits : '0123456789'

string.hexdigits : '0123456789abcdefABCDEF'

string.octdigits : '01234567'

string.punctuation : !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

 

sorted 함수

- return : 정렬된 list

 

python transpose 행렬 - zip 함수

docs.python.org/3/library/functions.html?highlight=built%20function#zip

http://blog.naver.com/cjh226/221328286730

mylist_transpose = list(map(list, zip(*mylist))) 

mylist = [[1,2,3],[4,5,6]]

- *mylist : mylist 2중 리스트를 unpacking -> 1중 리스트 2개(a, b)

-> a =[1, 2, 3], b = [4, 5, 6]

- zip(*mylist)1중 리스트 2개(a, b)에서 원소를 하나씩 추출해서 tuple형으로 묶음. (a1, b1), (a2, b2), ...

-> (1, 4) (2, 5) (3, 6)

- map(list, zip(*mylist)) : tuple형을 list형으로 변환

-> [1, 4] [2, 5] [3, 6]

- list(map(list, zip(*mylist))) : 2중 리스트로 다시 만들기

-> [[1, 4], [2, 5], [3, 6]]

 

dict(zip(keys, values)) : keys 리스트와 values 리스트를 합쳐서 dictionary형으로 만들 수 있다!!!!!

 

map 함수를 잘 사용하자~!

docs.python.org/3/library/functions.html?highlight=built%20function#map

list(map(int, mylist)) : mylist의 원소 타입을 int로 모두 변경

 

''.join(mylist) : list 내의 문자열을 공백없이 하나로 합치기

m.blog.naver.com/complusblog/221158629508

 

별찍기

n = int(input().strip())
a = ["*"*(i+1) for i in range(n)]
print(*a, sep='\n') : list의 원소를 한 줄씩 띄워서 출력

 

itertools.product('ABCD', 'xy') = Ax Ay Bx By Cx Cy Dx Dy -> Cartesian product(곱집합) 결과

docs.python.org/3/library/itertools.html#itertools.product

 

itertools.chain.from_iterable : 2차원 배열 -> 1차원 배열 하나로 만들기

answer = sum(my_list, []) : sum 함수도 가능한가봄ㄷㄷ

list(itertools.chain(*my_list)) : chain까지만 하고 unpacking 하는 방법

programmers.co.kr/learn/courses/4008/lessons/12738

 

 

'개발 > 알고리즘' 카테고리의 다른 글

Find Numbers with Even Number of Digits  (0) 2021.01.22
485. Max Consecutive Ones  (0) 2021.01.22
[leetcode] week1 - Move Zeroes  (0) 2020.04.13
[leetcode] week1 - Maximum Subarray  (0) 2020.04.12
[leetcode] week1 - Happy Number  (0) 2020.04.11

댓글