stack, queue, deque in python
stack, queue, deque에 대해 알아보자. stack은 선입후출! - 먼저 들어온 것이 나중에 빠져나간다. 컵 모양이라 생각하면 똑같다. 1,2,3,4가 stack이라는 리스트에 들어갔다면 꺼낼 때는 4,3,2,1순으로 나와야한다. python에서 특정한 라이브러리가 없는 것으로 알고있다. stack은 평범한 리스트로 구현이 가능하다. stack=[] stack.append(1) stack.append(2) # stack = [1,2] stack.pop() # 결과 : 2 stack.pop() # 결과 : 1 stack.append(3) stack.append(4) # stack = [3,4] stack.insert(0,5) # stack = [5,3,4] stack.pop(0) # 결과 : ..
2021. 11. 12.
[백준 11053번] (bisect)가장 긴 증가하는 부분 수열(LIS) in python
문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 예제 입력 1 6 10 20 10 30 20 50 예제 출력 1 4 LIS! Longest Increasing Subsequence로 뜻은 가장 긴 증가 부분수열이다. 별거 없다. 다음 숫자가 자신보..
2021. 11. 8.
from itertools import 순열, 조합, 곱집합, 중복조합 in python
순열. import permutations -> 순서가 있음 from itertools import permutations n,m=map(int,input().split()) #n=4, m=2 permu=list(permutations([i for i in range(1, n+1) ],m)) # [1,2,3,4], 2 print(permu) ''' for i in permu: for j in range(len(i)): print(i[j], end=' ') print() ''' ''' 입력 : 4 2 출력 : [(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)] 입력 : 3 1 출력 : ..
2021. 11. 2.