전체 글 123

[BFS] 연구소

예제 입력 1 7 7 2 0 0 0 1 1 0 0 0 1 0 1 2 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 예제 출력 1 27 예제 입력 2 4 6 0 0 0 0 0 0 1 0 0 0 0 2 1 1 1 0 0 2 0 0 0 0 0 2 예제 출력 2 9 예제 입력 3 8 8 2 0 0 0 0 0 0 2 2 0 0 0 0 0 0 2 2 0 0 0 0 0 0 2 2 0 0 0 0 0 0 2 2 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 예제 출력 3 3 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적..

[BFS] 데스 나이트

예제 입력 1 7 6 6 0 1 예제 출력 1 4 예제 입력 2 6 5 1 0 5 예제 출력 2 -1 예제 입력 3 7 0 3 4 3 예제 출력 3 2 https://www.acmicpc.net/problem/16948 16948번: 데스 나이트 게임을 좋아하는 큐브러버는 체스에서 사용할 새로운 말 "데스 나이트"를 만들었다. 데스 나이트가 있는 곳이 (r, c)라면, (r-2, c-1), (r-2, c+1), (r, c-2), (r, c+2), (r+2, c-1), (r+2, c+1)로 이동할 수 있다. 크기가 N×N인 체스판과 두 칸 (r1, c1), (r2, c2)가 주어진다. 데스 나이트가 (r1, c1)에서 (r2, c2)로 이동하는 최소 이동 횟수를 구해보자. 체스판의 행과 열은 0번부 www..

[BFS] 뱀과 사다리 게임

예제 입력 1 3 7 32 62 42 68 12 98 95 13 97 25 93 37 79 27 75 19 49 47 67 17 예제 출력 1 3 5를 굴려 6으로 이동한다. 6을 굴려 12로 이동한다. 이 곳은 98로 이동하는 사다리가 있기 때문에, 98로 이동한다. 2를 굴려 100으로 이동한다. 예제 입력 2 4 9 8 52 6 80 26 42 2 72 51 19 39 11 37 29 81 3 59 5 79 23 53 7 43 33 77 21 예제 출력 2 5 5를 굴려 6으로 이동하고, 사다리를 이용해 80으로 이동한다. 6을 굴려 86으로 6을 또 굴려 92로 6을 또 굴려 98로 이동하고 2를 굴려 100으로 이동한다. - 뱀이랑 사다리는 다음에 이동할 노드로써, 사실상 구분할 필요가 없음. ..

★ [Brute Force - 비트마스크] 2048 (Easy)

예제 입력 1 3 2 2 2 4 4 4 8 8 8 예제 출력 1 16 https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2보다 크거나 같고, 1024보다 작거나 같은 2의 제곱꼴이다. 블록은 적어도 하나 주어진다. www.acmicpc.net - 최대 5회 이므로, 각 이동케이스를 길이가 5인 4진법 수 4개로 변환해 각각의 경우를 모두 수행한다. - 직접 풀어볼 것. [ 모범 답안 (출처 : code.plus 알고리즘 중급 강의) ] #includ..

★ [Brute Force - 비트마스크] 구슬 탈출 2

예제 입력 1 5 5 ##### #..B# #.#.# #RO.# ##### 예제 출력 1 1 예제 입력 2 7 7 ####### #...RB# #.##### #.....# #####.# #O....# ####### 예제 출력 2 5 예제 입력 3 7 7 ####### #..R#B# #.##### #.....# #####.# #O....# ####### 예제 출력 3 5 예제 입력 4 10 10 ########## #R#...##B# #...#.##.# #####.##.# #......#.# #.######.# #.#....#.# #.#.#.#..# #...#.O#.# ########## 예제 출력 4 -1 예제 입력 5 3 7 ####### #R.O.B# ####### 예제 출력 5 1 예제 입력 6 1..

★ [Brute Force - 비트마스크] 가르침

예제 입력 1 3 6 antarctica antahellotica antacartica 예제 출력 1 2 https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문자로만 이루어져 있고, 길이가 8보다 크거나 같고, 15보다 작거나 같다. 모든 단어는 중복되지 않는다. www.acmicpc.net - 모든 단어가 anta로 시작하고 tica로 끝나므로, a/n/t/i/c는 기본으로 배운것으로 처리하여 시간복잡도를 줄인다. - 읽을 수 있는 단어를 셀 때, 각각의 단어가 무엇인지..

C++ 정리 - (1)

[ Initialization ] #include int main(void) { using namespace std; int nValue = 5; // copy initialization int nValue2(5); // direct initialization int nValue3{5}; // uniform initialization int value{4.5}; // unniform initialization(error) return 0; } - 빈 {}로 uniform initialization을 하면 기본 초기화(default initialization)가 된다. 기본 초기화는 변수를 0으로 초기화한다. - 또한, uniform initialization은 형변환을 허용하지 않는다는 이점이 있다. 변..

[Brute Force - 재귀] 퇴사

예제 입력 1 7 3 10 5 20 1 10 1 20 2 15 4 40 2 200 예제 출력 1 45 예제 입력 2 10 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 예제 출력 2 55 예제 입력 3 10 5 10 5 9 5 8 5 7 5 6 5 10 5 9 5 8 5 7 5 6 예제 출력 3 20 예제 입력 4 10 5 50 4 40 3 30 2 20 1 10 1 10 2 20 3 30 4 40 5 50 예제 출력 4 90 https://www.acmicpc.net/problem/14501 [풀이1 : Brute Force] #include #define MAX(a,b) ((a)>(b)?(a):(b)) #define MAX_SIZE (16) int T[MAX_SIZE]; i..

[Brute Force - 재귀] 에너지 모으기

예제 입력 1 4 1 2 3 4 예제 출력 1 12 예제 입력 2 5 100 2 1 3 100 예제 출력 2 10400 예제 입력 3 7 2 2 7 6 90 5 9 예제 출력 3 1818 예제 입력 4 10 1 1 1 1 1 1 1 1 1 1 예제 출력 4 8 - 배열에서 원소를 빼면서 함수로 넘길 때 주의. #include #define MAX(a,b) ((a)>(b)?(a):(b)) #define MAX_SIZE (10) class vector { public: int data[MAX_SIZE]; int size; vector() { size = 0; } void Add(int item) { data[size] = item; size++; } void Erase(int pos) { if (size