일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 문자열
- CS
- 완전탐색
- 그리디
- 스택
- 플로이드-와샬
- 프로그래머스
- 투 포인터
- Kotlin
- dfs
- swea
- BFS
- Effective Java
- 구현
- 후니의 쉽게 쓴 시스코 네트워킹
- 위상정렬
- 이분탐색
- 유니온 파인드
- 백트래킹
- java
- JUnit 5
- 시뮬레이션
- 알고리즘
- 동적계획법
- 에라토스테네스의 체
- Network
- 백준
- 수학
- mst
- 세그먼트 트리
목록완전탐색 (14)
반갑습니다!
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 완전탐색을 해서 가능한 경우를 모두 확인해주었다. set을 통해서 중복되는 경우를 걸러주었다. 코드 #include #include #include using namespace std; bool visited[10]; set ans; void dfs(vector& user_id, vector& banned_id, int idx) { if (idx == banned_id.size()) { // set으로 중복 체크 string res = ""; for (int i = 0; i < user_id.size()..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 문제를 보고 BFS라고 생각하기 쉽지만, 백트래킹을 통한 완전탐색 문제이다. 이 문제는 크게 2가지 부분으로 구성된다. i번째 사람이 어느 계단으로 갈지 결정하는 부분 구현 계단을 모두 빠져나가는 부분 구현 1번의 경우 백트래킹을 통해 어렵지 않게 모든 경우를 구할 수 있다. 그렇다면 이제는 2번을 구현해야한다. 어느 계단으로 갈 지 결정했다면, 1번 계단으로 가는 사람들이 계단까지 걸리는 시간과 2번 계단으로 가는 사람들이 계단까지 걸리는 시간을 구할 수 있다. 이를 계산한 뒤, 걸리는 시간을 오름차순으로 정렬한다. 그리고 계단을 queue로 구현하여 계단..
16986번: 인싸들의 가위바위보 www.acmicpc.net 풀이 가위바위보 손동작 수가 N이라면 지우는 [1, 2, 3, ... , N] 을 낼 수 있다. 따라서 지우가 낼 손동작의 순서를 모두 구해서 확인해보면 해결할 수 있다. 코드 #include #include #include using namespace std; int n, k; int a[10][10]; int jw[10], kh[20], mh[20]; bool simulation() { int jw_idx = 0, kh_idx = 0, mh_idx = 0; int jw_win = 0, kh_win = 0, mh_win = 0; // 다음 차례에 가위바위보 할 사람을 가리키는 변수 // 0: 지우, 1: 경희, 2: 민호 int rest =..
16197번: 두 동전 www.acmicpc.net 풀이 시뮬레이션 문제이다. BFS를 통해 모든 경우를 탐색하여 해결하였다. 이 때, 동전이 2개이므로 중복 체크를 위한 배열을 visited[cy1][cx1][cy2][cx2]로 두었다. 코드 #include #include #include using namespace std; struct Coins { int x1, y1, x2, y2, cnt; }; int n, m, cx1, cy1, cx2, cy2; char map[20][20]; bool visited[20][20][20][20]; const int dx[] = { -1, 0, 1, 0 }, dy[] = { 0, -1, 0, 1 }; bool inRange(int x, int y) { retur..
14500번: 테트로미노 www.acmicpc.net 풀이 완전탐색으로 해결할 수 있는 문제이다. 폴리오미노를 잘 살펴보면 ㅜ 모양을 제외하고서는 한붓그리기로 그릴 수 있는 모양이다. 즉 DFS를 통해 탐색할 수 있는 모양이다. 따라서 백트래킹으로 사용해서 모든 경우를 다 확인하고, 확인하지 못한 ㅜ모양만 따로 확인해주면 쉽게 해결할 수 있다. 코드 #include #include using namespace std; int n, m, ans; int map[500][500]; bool visited[500][500]; const int dx[] = { -1, 0, 1, 0 }, dy[] = { 0, -1, 0, 1 }; void dfs(int x, int y, int cnt, int sum) { if ..