끄적끄적
10.12 파이썬 본문
입력
2차원 문자열배열 입력받기
for i in range(N):
color = str(input())
for x in color:
arr[i].append(x)
for문
_ : 의미없는 변수, 실제 사용되지 않을 때 사용
[False]*N 하면 N 크기의 리스트가 만들어짐
arr = [[] for _ in range(N)]
visited = [[False]*N for _ in range(N)]
range
1. 인수가 한 개 - range(MAX)
0에서부터 MAX - 1
2. 인수가 두 개 - range(MIN, MAX)
MIN에서부터 MAX -1
3. 인수가 세 개 - range(MIN, MAX, GAP)
MIN에서부터 MAX-1 까지, 각 숫자들 사이에 GAP만큼의 차이를 두면서
ex ) range(0, 10, 2) 면 0,2,4,6,8 이 만들어짐
deque
파이썬은 c++과 달리 color = dq.popleft() 이렇게 삭제와 반환을 동시에 할 수 있음
연산자
and, or, not
x의 y제곱을 나타내는 ** 연산자
>>> a = 3
>>> b = 4
>>> a ** b
81
문자열
mystring = 'hello world'
정렬 -> mystring.sort()
길이 -> len(mystring)
슬라이싱 -> mystring[0:5] #0~4까지 자르기 'hello'
numbers = list(numbers) 이렇게 하면 numbers 안의 문자를 다 쪼개서 리스트 형태로 만들어줌
ex) list('hello world!')
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!']
리스트에서 최대값 찾기
max(리스트이름)
set 함수
중복을 없애주는 함수
합집합 : | or union
교집합 : & or intersection
차집합 : - or difference
map 함수
map(function, iterable)
첫 번째 매개변수 : 함수
두 번째 매개변수 : 반복 가능한 자료형(리스트, 튜플 등)
두번째 인자로 들어온 리스트나 튜플을 첫번째 인자로 들어온 함수에 하나씩 집어넣어서 함수를 수행해준다.
join 함수
''.join(리스트)
리스트를 문자열로 합쳐줌
'구분자'.join(리스트)
리스트의 값과 값 사이에 '구분자'에 들어온 구분자를 넣어서 하나의 문자열로 합쳐줌
ex) a_b_c
permutations
from itertools import permutations
순열은 서로 다른 n 개 중 r개를 골라 순서를 정해 나열하는 가짓수
permutations(리스트, 고를 개수)
ex) permutations(arr, 2) => arr 리스트에서 2개의 원소를 고르겠다
+) combinations도 이름만 바꿔서 써주면 됨.
모듈 가져오기
1)
import 모듈
2)
from 모듈 import 이름
+)
numbers_set |= set(map(int, map(''.join, permutations(numbers, i+1))))
numbers 리스트에서 i+1 개의 원소를 골라 join함수를 실행하여 합친다.
이후 합쳐진 문자열을 int로 만들고, 중복을 제거하여 numbers_set에 합친다.