브루트 포스 (49) 썸네일형 리스트형 주사위 윷놀이 https://www.acmicpc.net/problem/17825 17825번: 주사위 윷놀이 첫째 줄에 주사위에서 나올 수 10개가 순서대로 주어진다. www.acmicpc.net 그림이 주어졌는데, 배열이 아니다. 숫자도 0, 2, 4, .. 이걸 그대로 따라가는건 아니다!! 규칙에 따라 map을 새로 정의하자!! 말이 파란색 칸에서 이동을 시작하면 파란색 화살표를 타야 하고, 이동하는 도중이거나 파란색이 아닌 칸에서 이동을 시작하면 빨간색 화살표를 타야 한다. 말이 있으면 이동을 못하므로 bool check[] 배열을 만든다. 사실 map만 정의 한다면 나머지는 브루트포스 (재귀)이다. 파란 곳에 가면 turn을 시키면 된다. 얻을 수 있는 점수의 최댓값을 구해보자. -> 브루트포스를 하면 되겠다.. 청소년 상어 https://www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 이 문제의 핵심은 배열을 두개를 쓰는 것이다. int map[4][4]; 여기에는 물고기 번호를 넣는다. 그리고 map이 바뀌면 swap 시키게 된다. 0은 빈 칸, -1은 상어가 있는 칸. 1 2 3 4 5 6 7 struct info { int row; int col; int dir; bool live; }; cs info fish[20]; 물고기가 1번부터 순서대로 이동을 .. 2048 (Easy) https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 비트마스크는 언제 쓸 수 있는가? map 전체를 움직이고, 전체 경우의 수를 계산할 수 있을 때! 위, 아래, 오른쪽, 왼쪽으로 4가지 경우에 최대 5번 이동 하니까 4 ^ 5 4 ^ 5 = 2 ^ 10 for (int k = 0; k >= 2; 이 조건들 때문에 시간을 너무 많이.. 구슬 탈출 2 (중요!!) https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 1. 10번 이하로 움직여서 꺼낼 수 없으면 -1 출력 10보다 커지면 return하면 되겠다. 2. 경우의 수 카운트 같은 방향으로 연속해서 두 번 이동은 의미가 없다. 한 방향으로 이동한 다음, 반대 방향으로 가는 것도 의미가 없다. 이동을 카운트 할 때, 이렇게 씹히는 걸 고려하면 시간이 매우 줄어든다. 애당초 그걸 노리고 낸 문제들이다. 4.. 색종이 붙이기 https://www.acmicpc.net/problem/17136 17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크 www.acmicpc.net 5, 4, 3, 2, 1로 일일이 다 해보기? 라고 생각하면 바로 반례를 만난다. 재귀로 풀어야 한다! 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 5.. 게리맨더링 https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 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 8.. 가르침 (어렵다..) https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net 모든 단어는 anta로 시작 tica로 끝난다. 그럼 a, n, t, i, c는 무조건 우선 순위로 가르쳐야함 고로 알파벳 개수 26 - 5개 중에 k -5개를 고르는 문제. K개의 글자를 가르칠 때, 학생들이 읽을 수 있는 단어 개수의 최댓값을 출력한다. 경우의 수가 많지 않으므로 브루트포스로 해결 가능 할 것 같으나?? 26 C k는 k가 26이하 이므로 결국 2의 26승까지 가게된다... ⚾ https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종 www.acmicpc.net https://www.youtube.com/watch?v=IUKjKaQ8fDI&ab_channel=MintaekOH 해냈다 해냈어!! 브루트포스 순열 문제이다 do - while문과 next_permutation을 쓰자. 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 .. 이전 1 2 3 4 ··· 7 다음