목록전체 글 (169)
하다보니
#include using namespace std; #define X first #define Y second int board[502][502]; bool visit[502][502]; int dx[4] = { 1,-1,0,0 }; int dy[4] = { 0,0,1,-1 }; int main() { int n, m; queue Q; vector v; cin >> n >> m; for (int i = 0; i > board[i][j]; } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { int cnt = 0; if (board[i][j] == 1&&!vis..
헤더파일을 선언해준다. template void reverse(BidirectionalIterator first, BidirectionalIterator last) first부터 last까지 요소들을 reverse 해라. [first,last) first부터 last 바로 전 인덱스까지 요소들을 뒤집는다. iterator 매개변수로 reverse하고 싶은 위치의 첫번째, 마지막 위치를 넣으면 reverse 된다. 참고) 이터레이터는 포인터의 형태로 이 리스트에 접근한다. 그리고 이때 쓰이는 함수 중 2개가 begin() 함수와 end() 함수이다. begin() 함수는 벡터의 데이터가 있는 리스트의 시작 주소를 리턴하는데, 첫 번째 값 위치이다. end() 함수는 리스트의 끝 주소를 리턴하는데, 마지막 ..
async와 await는 promise를 좀 더 간결하고 간편하고 동기적으로 실행되는 것처럼 보이게 만들어 주는 것. promise를 chining을 계속 할 수 있는데 코드가 난잡해질 수 있다. 기존에 존재하는 promise에 좀 더 간편한 api로 async와 await를 사용하면 코드를 동기식으로 작성하는 것처럼 간편한 작성을 도와준다. 새로운 것이 추가된 것이 아닌 기존에 존재하는 기능에 좀 더 간편한 api를 제공한다. 이렇게 기존에 존재하는 것 위에 기존에 존재하는 것을 감싸서 우리가 좀 더 간편하게 쓸 수 있는 api를 제공하는 것을 syntactic sugar이라 한다. 자바 스크립트에서 class는 완전히 새로운 것이 아니라 프로토타입을 베이스로 한 syntactic sugar이다. as..
스택의 대표적인 활용 사례로 수식의 괄호 쌍이랑 전위/중위/후위 표기법, DFS, Flood Fill 등이 있다. 이 중에서 전위/중위/후위 표기법은 코딩테스트 대비용으로는 너무 지엽적이라 제외한다. 나머지는 다 강의에 포함되어 있고 이번 시간에는 수식의 괄호쌍을 공부해보겠다. 수식의 괄호쌍이란 주어진 괄호 문자열이 올바른지 판단하는 문제이다. 문자열을 앞에서부터 읽어나갈 때, 닫는 괄호는 남아있는 괄호 중에서 가장 최근에 들어온 여는 괄호와 짝을 지어 없애버리는 명령이라고 생각해도 된다. 문제 해결 방법 여는 괄호가 나오면 스택에 추가 닫는 괄호가 나왔을 경우, 스택이 비어있으면 올바르지 않은 괄호 쌍 스택의 top이 짝이 맞지 않는 괄호일 경우 올바르지 않은 괄호 쌍 스택의 top이 짝이 맞는 괄호일..
#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); deque Q; int n, m; int ans = 0; cin >> n >> m; for (int i = 1; i > a; int idx = find(Q.begin(), Q.end(), a)-Q.begin(); while (Q.front() != a) { if (idx
template InputIterator find(InputIterator first, InputIterator last, const T& val); 에 정의됨. 범위 안에 원하는 값을 찾는다. first부터 last 전까지의 원소들 중 val과 일치하는 첫 번째 원소를 가리키는 반복자를 리턴한다. 만일 일치하는 원소를 찾지 못할 경우 last를 리턴한다. 참고로 이 함수는 string의 find 함수와 다르다. 인자 - first, last : 원소들의 시작과 끝을 가리키는 반복자들 이때 확인하는 범위는 [first,last)로 정의된다. first가 가리키는 원소는 포함되지만 last가 가리키는 원소는 포함되지 않는다. - val : 비교할 값. 이때 val의 타입 T의 경우 operator ==가 ..
#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); deque q; int n; cin >> n; while (n--) { string s; cin >> s; if (s == "push_front") { int t; cin >> t; q.push_front(t); } else if (s == "push_back") { int k; cin >> k; q.push_back(k); } else if (s == "front") { if (q.empty()) { cout
#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); queue Q; int n; cin >> n; for (int i = 1; i
#include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); queue q; int n; cin >> n; while (n--) { string s; cin >> s; if (s == "push") { int t; cin >> t; q.push(t); } else if (s == "front") { if (q.empty()) { cout