본문 바로가기

코테

파이썬 기본문법

#리스트 컴프리헨션
a = [i for i in range(10)]
print(a)
b = [i for i in range(20) if i%2==1]
print(b)
c = [i*i for i in range(10)]
print(c)

# nXm 2차원 리스트 초기화
n = 4
m = 3
array = [[0]*m for _ in range(n)]
print(array)
# 변수 상관 없이 반복할 때, _ 사용

# append : 가장 뒤에 삽입
# sort : 오름차순, (reverse = True 내림차순)
# reverse : 리스트 뒤집기
# insert(위치, 값)
# count(특정 값)
# remove(특정 값) : 여러 개면 하나만 제거

a = [1,2,3,4,5,6]
remove_set = {3,5}
result = [i for i in a if i not in remove_set]
print(result)

# \이용 하면 "", '' 안에 원하는 만큼 추가 "", '' 사용 가능
# 문자열 특정 인덱스 값 변경 불가능 immutable

# 튜플 : 한 번 선언된 값을 변경할 수 없음, 소괄호 이용, 공간 효율적
a = (1,2,3,4,5,6)
print(a[3])
print(a[1:4])
# 최단 경로에서 (비용,노드)
# 데이터 해싱 - 키값
# 리스트보다 메모리를 효율적으로 사용해야 할 때

#딕셔너리 키 값은 해시 - O(1)
a = dict()
a['홍길동'] = 97
a['이순신'] = 98
print(a)

b = {
  '홍길동' : 97,
  '이순신' : 98
}
print(b)
key_list = list(b.keys())
print(key_list)

#집합 : 중복X, 순서X, 존재 여부만 확인할 때 유용, 중괄호(,)
# |, &, - 연산
# add=하나, update-여러개, remove 

# map() : 리스트 모든 원소에 각각 특정한 함수를 적용하고자 할때 사용
#list(map(int, input.split()))

import sys
data = sys.stdin.readline().rstrip()

# f string : 문자열 앞에 f 붙여서 사용, 중간에 변수명 기입 가능
answer = 7
print(f"어쩌고 {answer} 저쩌고")


 

내장 함수 : 기본 입출력, 정렬함수 등 기본적인 함수 제공

itertools : 반복되는 형태의 데이터를 처리하기 위한 유용한 기능 제공

              순열 조합 라이브러리가 포함되어 있음 - 완전 탐색에서 많이 사용

heapq : 힙 자료구조 제공, 우선순위 큐 구현을 위함

           대표적으로 다익스트라 같은 최단경로에서 사용

bisect : 이진탐색 기능 제공

collection : 덱, 카운터 등 유용한 자료구조 포함

math : 팩토리얼, 제곱근, GCD, 삼각함수 등 함수와 파이 같은 상수 포함

 

result = sum([1,2,3,4,5])
print(result)

min_result = min(1,2,3,4)
max_result = max(1,2,3,4)
print(min_result, max_result)

result = eval("(3+5)*7")
print(result)

result = sorted([1,34,35,56])
reverse_result = sorted([234,2,53,3,46,4,3,63],reverse = True)
print(result, reverse_result)

array = [('홍길동', 35),('이순신':75), ('아무개',50)]
result = sorted(array, key = lambda x : x[1], reverse=True)
print(result)

#순열과 조합 itertools
#순열 : 서로 다른n개에서 서로 다른 r개 선택하여 일렬로 나열, 순서 고려
#조합 : 서로 다른n개에서 순서에 상관 없이 서로 다른 r개 선택
from itertools import permutations
data = ['A','B','C']
result = list(combinations(data,2))
print(result)

#중복순열
from itertools import product
data = ['A','B','C']
result = list(product(data, repeat = 2)) 
print(result)

#중복조합
from itertools import combinations_with_replacement
data = ['A','B','C']
result = list((combination_with_replacement(data,2)))
print(result)

#counter : 등장 횟수를 세는 기능
from collections import Counter
counter = Counter(['red','blue','red','green','blue','blue'])
print(counter['blue'])
print(counter['green'])
print(dict(counter))

#math 
import math
def lcm(a,b) :
	return a*b // math.gcd(a,b)
print(math.gcd(21,14))
print(lcm(21,14))

'코테' 카테고리의 다른 글

[프로그래머스] <큰 수 만들기> 파이썬 풀이  (0) 2021.02.01
그리디  (0) 2021.01.26
백준 11050 : 이항계수1 c++ 정답  (0) 2020.04.01
백준 3036 : 링 c++ 정답  (0) 2020.04.01
백준 2981 : 검문 c++ 정답  (0) 2020.04.01