본문 바로가기

dfs14

[백준 16986]인싸들의 가위바위보 www.acmicpc.net/problem/16986 16986번: 인싸들의 가위바위보 두 사람이 같은 손동작을 내어 무승부가 발생할 경우 경기 진행 순서상 뒤인 사람이 이긴 것으로 간주함에 다시 한 번 유의한다. 구체적으로, 경기 진행 순서는 지우, 경희, 민호 순으로 고정되 www.acmicpc.net 낼 수 있는 손동작이 총 9개 이므로 브루트포스를 사용해서 모든 경우의 수를 확인하는 문제이다. 지우가 모든 손동작을 다르게 내어 우승할 수 있으면 1을, 그렇지 않으면 0을 출력한다. 지우가 내는 손동작이 모두 달라야 하므로 순열을 사용했다. next_permutation(배열 혹은 벡터의 시작점, 배열 혹은 벡터의 마지막 점) 순열을 구한 후 다음 순열이 존재하면 true 그렇지 않으면 false를.. 2021. 3. 1.
[백준 1520] 내리막 길 www.acmicpc.net/problem/1520 #include using namespace std; int a[500][500]; int dp[500][500]; int n, m; int dr[4] = {0, 0, -1, 1}; int dc[4] = {1, -1, 0, 0}; int dfs(int row, int col) { if (row == 0 && col == 0) { return 1; } if (dp[row][col] == -1) { dp[row][col] = 0; for (int i = 0; i = 0 && nc >= 0 && nr < n && nc < m) { if (a[ro.. 2021. 1. 23.
[프로그래머스 2019 카카오 개발자 겨울 인턴십] 불량 사용자 programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 무지는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr 처음에 매우 어렵게 접근했다. 하지만 문제에서 구하고자 하는 바가 불량 아이디 케이스 별 집합 이라는 것을 알면 접근이 쉬워진다. 유저 아이디에서 불량 아이디를 체크하여 그 경우의 수를 집합에 담는다. {1,3,4} 나 {3,4,1}이나 같은 케이스로 취급하기 때문 유저아이디도 최대 8개이기 때문에 dfs를 돌려서 모두 확인하는 방법이 최선이다. dfs(parameter: 현재 .. 2021. 1. 19.
[백준 17142] 연구소 3 www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 연구소 2와 비슷한 문제이다. 차이가 있다면 비활성 바이러스가 활성 바이러스를 만나면 활성바이러스가 된다는 점이다. 비활성-> 활성바이러스가 되는 시점에선 시간+1을 해주지 않아도 된다. 활성바이러스로 부터 다시 바이러스가 퍼지기 시작하기 때문. 그림으로 따지자면 다음과 같다. 위그림은 전부 빈곳 일때이다. 빈곳일때는 그냥 +1 해주면 된다. 하지만 비활성 바이러스가 활성 바이러스가 되면 시간에 영향을 주지 않는다. 이.. 2020. 12. 22.