본문 바로가기

나는 오늘,

(371)
알고스팟 *우선순위큐를 사용해서 더 적게 벽을 뿌순 순서대로 정렬하여 큐에서 꺼낸다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 #include #include #include #include #define INF 987654321 using namespace std; int n, m, ans = INF; int map[101][101]; typedef pair pp; typ..
달이 차오른다, 가자 *현재 가지고 있는 열쇠의 상태를 비트형태로 보존이 핵심 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 #include #include #include #define INF..
Two Dots *backtracking 을 사용하여 현재 지점을 기준으로 시작점으로 갈 수 있는지 없는 지 판단한다. *갈 수 있는 길은 같은 색을 가지고 있는 칸이다. *내가 가려는 칸이 나와 같은 색을 가지고 있다면 방향전환이 필요없고, 다른 색이라면 다른 방향으로 전환을 한다. *내가 가려는 칸이 이미 방문한 칸이라면 시작 지점인지 검사한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 ..
로봇 *visited를 3차원(x,y,dir)으로 설정해서 지금 좌표와 가르키는 방향을 모두 저장한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113..
점프 점프 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 #include #include #define INF 987654321 #define MAXX 1001 using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n; cin >> n; int map[MAXX] = {0}; for (int i = 0; i > map[i]; } int dp[MAXX] = {0}; //이전 단계에서 점프해서 도착했을 때 최소 횟수를 저장 for (int i = 0; i
투표 *lower_bound로 현재 심사기준에 맞는 경기 비용의 경계 인덱스를 구하고(이 경기가 가장 재미있는 경기는 아닐 수도 있다.) 입력받은 순서가 적은 순서가 더 재미있는 경기이기 때문에 이 비용을 넘지 않는 경기들을 살펴보면서 가장 재미있는 경기에 투표할 수 있도록 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 #include #include #include using nam..
거짓말 *union find set을 사용해서 진실을 알고 있는 사람들끼리 한 세트로 만들었다. **dp로 풀어보기 ** *도움이 된 TC 4 3 1 2 2 1 2 1 3 3 2 3 4 ans = 0 5 3 1 3 3 1 2 4 3 1 4 5 1 3 ans = 2 3 2 1 1 2 2 3 2 1 2 ans = 0 6 5 1 6 2 4 5 2 1 2 2 2 3 2 3 4 2 5 6 ans = 0 6 5 1 6 2 1 2 2 2 3 2 3 4 2 4 5 2 5 6 ans = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48..
아기상어2 *1이 아닌 모든 좌표에 대해서 bfs로 8방향을 탐색한다. *bfs는 아기상어를 만나는 가장 짧은 경로까지의 거리를 반환한다. *bfs가 반환하는 값 중 최대값이 정답. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 #include #include #include #include #include using..