스택 3

c++ 자료형

1. 큐 함수 기능 q.front() 가장 먼저 들어간 원소 리턴 q.back() 가장 마지막에 들어간 원소 리턴 q.push(value) 값을 추가 q.empty() 비어있으면 1 q.size() 내부 값의 개수 리턴 q.pop() front값 삭제 2. 스택 #include stack mystack; stack mystack2; //스택안에 벡터 mystack.pop() // 스택의 끝 값 삭제 mystack.push(5) // 스택 삽입 a=mystack.top() // 스택의 끝 값 return 함수 기능 s.top() 가장 마지막에 들어간 원소 리턴 s.push(value) 값을 추가 s.empty() 비어있으면 1 s.size() 내부 값의 개수 리턴 s.pop() top값 삭제 3. dequ..

[백준]5397 키로거 #stack

0. 기억해 실버3 이지만, stack을 생각하지못하면 풀 수 없는 문제임. 커서가 나오면 보통 스택을 쓴다고 하니 유념할것 ​ 1. 리스트 하나 (시간초과) (1) cursur변수를 따로두고, 리스트하나로 풀때. (2) insert와 del를 위해 리스트를 처음부터 끝까지 탐색해야하기 때문에 시간초과. import sys T=int(input()) for t in range(T): word = sys.stdin.readline().rstrip() size = len(word) cursur = 0 nowWord=[] for i in range(size): if word[i]=="": if cursur0: del nowWord[cursur-1] cursur-=1 else: if cursur==len(now..

[백준]1325 효율적인해킹 #stack

1.풀이 재귀로 풀었을때 시간초과가 발생했다 (소스코드1). O(NM)이고 제한시간 5초(C++기준) 이므로 살짝 애매한데 최적화가 잘 안된것 같다. stack으로 풀었고 pypy로 제출하여 정답. (소스코드2) ​ 2.소스코드 (1) 소스코드1 (시간초과) import sys from collections import deque N,M=map(int,input().split()) graph={} for i in range(1,N+1): graph[i]=[] for i in range(M): A,B=map(int,sys.stdin.readline().rstrip().split()) graph[B].append(A) hackCom=0 ans=[] for start in range(1,N+1): visite..

알고리즘/graph 2020.06.14