알고리즘

알고리즘

[백준/C++] 2631번 줄세우기 (LCS)

https://www.acmicpc.net/problem/2631 2631번: 줄세우기 KOI 어린이집에는 N명의 아이들이 있다. 오늘은 소풍을 가는 날이다. 선생님은 1번부터 N번까지 번호가 적혀있는 번호표를 아이들의 가슴에 붙여주었다. 선생님은 아이들을 효과적으로 보호하기 www.acmicpc.net 1. 문제 접근 아이고 이거 문제 태그 없었으면 큐로 줄 빙글빙글 돌릴뻔 했습니다. 역시 DP는 바로바로 문제를 파악할 수 있는 능력이 있어야 할 것 같아요. 여러 학생이 서있고, 최소한의 자리 바꿈으로 1~N까지 줄을 세우려면요, 최대한 많은 학생을 제자리에 고정시켜놓아야 합니다. 예를 들어, 학생들이 다음과 같이 줄을 서있다고 합시다. 1 2 4 5 3 6 7 1번, 2번, 4번, 5번, 6번, 7번..

알고리즘

[백준/c++]14391번 종이조각 비트마스킹 풀이

https://www.acmicpc.net/problem/14391 14391번: 종이 조각 영선이는 숫자가 쓰여 있는 직사각형 종이를 가지고 있다. 종이는 1×1 크기의 정사각형 칸으로 나누어져 있고, 숫자는 각 칸에 하나씩 쓰여 있다. 행은 위에서부터 아래까지 번호가 매겨져 있고, www.acmicpc.net 접근 방법 비트 마스킹과 완전 탐색 방법으로 문제를 풀었습니다. 생소했던 비트 마스킹을 2차원 배열에 적용시키는 것이 어려웠습니다. 비트 마스킹을 사용한 이유 이런 입력이 주어지고, 종이를 초록색 상자와 같이 잘랐다고 가정합시다. 그러면 이러한 상황에서 답은 12 + 4 + 5 + 36 = 57입니다. 이렇게 종이 조각이 가로와 세로로 연결되는 모든 조합을 찾기 위해선 비트 마스킹을 활용할 수 ..

알고리즘

BFS 톺아보기_섬의 개수, 음식물 피하기

youtu.be/Q6pa2akgUGI [섬의 개수 정답 코드] #include #include using namespace std; int field[51][51]; int visited[51][51]; //팔방 check int dx[] = { 0,0,-1,1,-1,1,-1,1}; int dy[] = { -1,1,0,0,-1,1,1,-1 }; int n, m; queue q; void bfs(int x, int y,int cnt); int main() { ios_base::sync_with_stdio(0); cin.tie(0); while (1) { int cnt = 1; cin >> n >> m; if (n == 0 && m == 0) return 0; for (int i = 0; i < m; i++..

알고리즘

[BOJ] 14502번. 연구소

[문제 풀이] 영상 참고. www.youtube.com/watch?v=I0Dq42C0h8w&feature=youtu.be&ab_channel=%EC%B2%9C%EC%88%98%ED%99%98 [코드] #include #include using namespace std; int n, m, ans = 0; int field[8][8]; int clone_field[8][8]; int dx[] = { 0,0,-1,1 }; int dy[] = { -1,1,0,0 }; //바이러스를 퍼트림. void bfs(); //a field에 b field를 복사함. void clone_it(int(*a)[8], int(*b)[8]); //세개의 벽을 세움. void make_wall(int cnt); int main() ..

Buzz_BEAR
'알고리즘' 카테고리의 글 목록 (2 Page)