일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- backtracking
- 삼성SW 역량 테스트 기출문제
- 15651
- 백준
- 주식 용어
- 백준 2370
- fill함수
- 백트레킹
- 백준 15651
- 위상정렬
- 프로그래머스
- Programmers
- 백준알고리즘
- 브루트포스
- 주식 용어 정리
- 15651c++
- BFS
- DP
- 백준 1697
- 삼성 SW 역량 테스트 기출 문제
- 시장 선거 포스터 c++
- 백준 알고리즘
- 주린이
- 삼성 SW역량 테스트
- 용어 정리
- MySQL
- 2370 c++
- C++
- 에라토스테네스의 체
- DFS
- Today
- Total
목록브루트포스 (2)
빠켱이
12100번은 브루트 포스 알고리즘 문제입니다. 위아래 왼쪽 오른쪽의 방향을 모두 탐색해서 결과를 도출하는 문제입니다. 코드를 구현하다 보니 재귀 함수와 방향을 이동하는 함수를 하나로 짜버렸는데, 재귀 함수와 이동 함수를 나누어 짜면 가독성에 좋을 것 같습니다. 숫자를 한 방향으로 이동했을 때 두 개의 숫자를 합치는 것과 공백을 고려하는 것은 queue를 사용하여 해결하였습니다. 고려사항 1. 두 개의 숫자만을 합쳐주는 것 해당 방향의 숫자들을 적절한 순서로 queue에 넣습니다. (ex. 위로 이동하는 방향이면 위에서부터 아래로 queue에 대입) queue를 앞에서 부터 탐색하며 조건에 맞게 위부터 채워나감니다. 고려사항 2. 공백 처리 queue를 사용하지 않으면 공백의 여부를 따로 처리해줘야 하지..
14502번은 bfs문제이자 브루트 포스 문제입니다. 문제를 푸는 방법은 다음과 같습니다. 1. 벽을 3개 세울 수 있는 모든 경우의 수를 따진다. 2. 해당 경우의 수 마다 바이러스가 퍼지지 않은 안전 영역의 크기를 구한다. 3. 구한 안전 영역의 크기중 가장 큰 값을 출력합니다. #include #include #include #include using namespace std; int n, m, result = 0; int map[9][9], map2[9][9]; int dx[4] = { -1,1,0,0 }; int dy[4] = { 0,0,-1,1 }; queue q; void count_zero(int arr[9][9]); void make_wall(int n); void bfs(); int m..