Algorithm98 [boj]16236 - 아기상어(BFS, 우선순위 큐) https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net - 조건에 먹이를 먹는 조건의 우선순위가 정해져있다. (1. 아기상어 위치에서 가까운 순 2. 가장 위 3. 가장 왼쪽). 이를 other.x; } return d > other.d; } }; int n, size = 2, exp = 0, ans = 0; int a[20][20]; int check[20][20]; priority_queue pq; void bfs() { while (!pq.. 2021. 7. 2. [BOJ]16954 - 움직이는 미로 탈출(그래프 탐색 - bfs, dfs) https://www.acmicpc.net/problem/16954 16954번: 움직이는 미로 탈출 욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽 www.acmicpc.net - 좀 특이한 그래프 탐색 문제여서 기록해둔다. 미로벽이 아래 방향으로 움직이는 경우의 수를 따로 메모리를 할당해서 저장하는 것이 아니고 시간이 1초 지날 때마다 아래 방향으로 1씩 움직이는 것을 이용해서 지금 캐릭터의 있는 위치의 t초 전, t+1초 전의 위치가 벽인지를 체크하는 방식으로 짤 수 있다. 이를 배열로 표현하면 a[nx-t][ny], a[nx-t-1][ny] 가 벽인지를 .. 2021. 6. 29. [kakao blind 2020] 문자열 압축 - 문자열, 구현 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 주어진 문자열을 압축한다고 했을 때 압축되는 단위는 1부터 문자열의 길이 / 2 가 될 수 있다. 이를 이용해서 1. 압축되는 단위를 정하고, 2. 이 단위 만큼 압축 가능한 substring의 갯수를 세고, 3. 압축이 되었을 때의 문자열 길이 중 최소길이를 구하면 된다. 3번이 좀 햇깔릴 수 있는데 압축된 문자열 길이를 모두 제외한 다음, 압축된 길이.. 2021. 5. 14. BOJ 14890 - 경사로(시뮬레이션, 배열) www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net - 2차원 지도의 row column을 왔다갔다하면서 검사를 하는게 힘들어서 행, 열을 따로 1차원 배열로 만들어서 검사하는 방식은 다른 블로그에서 팁을 얻었다. - 일단 1차원 배열로 행이나 열을 가져오면 통하는 길인지를 검사하는 것이 쉬워진다. 1. 높이 차이가 나는 경우(경사로 오르막인 경우, 내리막인 경우를 따진다) - 높이가 1 차이 나야한다. - 경사로가 지도 밖으로 를 넘어가지 않는다 - 경사로가 놓이는 지점끼리는 높이 .. 2021. 4. 13. 이전 1 ··· 15 16 17 18 19 20 21 ··· 25 다음