이번 포스팅에서는 비트마스킹에 대해 다루겠습니다. 비트마스킹을 이해하려면 비트에 대한 기본적인 이해가 필요합니다. 따라서 비트연산, 이진수의 표현과 변환 방법, 부분집합에 대해 이해가 선행되어야 합니다. 일반적으로 C++의 헤더에는 비트마스킹의 여러 기능을 지원합니다. 하지만 비트연산을 통해 직접 구현할 줄 알아야 합니다. 따라서 이번 포스팅에서는 직접 구현하고 원리를 알아보는 것을 위주로 다룹니다. 1. 개념 비트마스킹이란? 컴퓨터로 처리하는 모든 정보는 0과 1의 이진수로 이루어져 있습니다. 비트마스킹은 이진수의 비트 표현을 이용하여 자료구조(주로 집합)를 표현하는 기법입니다. 0은 해당 비트에 원소가 없음을, 1은 해당 비트에 원소가 있음을 나타냅니다. 예를 들어 10진수 14를 이진수로 변환하고 ..
[목차] 1. 다익스트라 알고리즘이란? 알고리즘 알고리즘 원리 구현 O(n²) O(ElogE) 알고리즘 분석 의의 다익스트라는 일종의 그리디 이다. 왜? 매 순간 다음 정점을 선택할 때 가중치가 최소인 정점을 선택하기 때문이다. 하지만 그리디의 특성상 부분 최적해가 전체의 최적해를 보장해야 위의 선택이 합리적이라고 할 수 있다. 그렇다면 매 순간 최소 가중치를 가진 정점을 선택하면 항상 최소가 보장될까? 직관 이를 귀류법으로 증명해보자. 반례 [원시적인 다익스트라 알고리즘] #include #include #include #define F first #define S second using namespace std; typedef pair PII; int V, E, st, en; int d[10001];..
https://rorobong.tistory.com/39 [티스토리] 표 내부 폰트 설정 변경 안녕하세요 로로봉입니다 : ) 이전 포스팅에서는 티스토리 코드블럭의 폰트를 설정하는 방법을 알아보았었습니다. 이번에는 표를 그렸을 때 폰트 크기가 생각보다 크게 설정되어 표 내부의 폰 rorobong.tistory.com
http://www.innerweb.kr/bbs/homepage/99961 이쁜 표 쉽게 만드는 방법 (Tables Generator) 게시글을 작성할 때 게시판에 탑재된 에디터에서 기본으로 제공하는 표만들기 기능을 사용해도 되지만 좀더 이쁘게 표를 만들 수 있는 방법을 소개해드리겠습니다. 표 쉽게 만들게 도와주는 사 www.innerweb.kr
ㅇ ㅇㅇㅇ https://reinvestment.tistory.com/38 티스토리 테이블 생성, 크기 조절 하는법 / 테이블 양 끝 채우기, 가운데 정렬 테이블은 다양한 정보를 요약하기에 아주 좋은 수단으로 사용됩니다. 티스토리의 경우 HTML을 이용한 수정이 많은 관계로 방법에 익숙하지 않다면 조작이 어려울 수 있습니다. 그렇기에 오늘은 reinvestment.tistory.com https://egeasy.tistory.com/entry/%ED%8B%B0%EC%8A%A4%ED%86%A0%EB%A6%AC-%ED%91%9C-%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%B0%B0%EA%B2%BD%EC%83%89-%ED%85%8C%EB%91%90%EB%A6%AC-%EC%A7%80%EC%A0%9..
#include #include #include #define IN(Z, Y, X) Z >=0 && Z =0 && Y =0 && X < M #define F first #define S second #define T third using namespace std; int N, M, H, unriped, ans; queue Q; int board[100][100][100]; int tomato[100][100][100]; int dz[6] = { 0, 0, 0, 0, 1, -1 }; int dy[6] = { 0, 1, 0, -1, 0, 0 }; int dx[6] = { 1, 0, -1, 0, 0, 0 }; //bfs로 순차적 탐색 void BFS() { while (!Q..
https://transferhwang.tistory.com/643 [C/C++] STL pair, tuple 사용법 C++에 튜플이 있는지 첨 알았다!!! WOW #include using namespace std; pair p; tuple t; int a, b, c; int main() { // 원래 방법 p = make_pair(1, 2); t = make_tuple(1, 2, 3); a = p.first; b = p.second; cout transferhwang.tistory.com