CS/Algorithm90 [알고리즘][DFS][14502] 연구소 [알고리즘][DFS][14502] 연구소 문제https://www.acmicpc.net/problem/14502 풀이 0은 공간, 1은 벽, 2는 바이러스입니다. n×m의 배열을 만들어 0,1,2로 입력받은 뒤 추가로 1인 벽을 3개 만들 수 있습니다. 추가적으로 세운 벽까지 포함하여 바이러스가 퍼지지 않는 안전영역의 최댓값을 구하면 됩니다. 이 때, 어디에 벽을 세우느냐가 가장 큰 관건입니다. 벽 3개를 세우는 모든 경우를 돌면서 바이러스를 퍼뜨려보면 안전영역의 최댓값을 구할 수 있습니다. 쉽지 않았던 문제여서 다음에 다시 한 번 더 풀어봐야겠습니다ㅠㅠ 코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454.. 2018. 4. 25. [알고리즘][DFS][1987] 알파벳 [알고리즘][DFS][1987] 알파벳 문제 https://www.acmicpc.net/problem/1987 풀이 문제 자체를 이해를 잘못 이해해서 몇 번을 헤맸다. DFS로 풀되 다른 케이스를 체크하기 위해 백트래킹을 이용해주면 더 쉽게 풀 수 있는 문제이다. 0,0 (좌측상단)에서 출발해 가장 멀리갈 수 있는 방법을 탐색하는 문제이다. 코드 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354package algorithm_DFS; import java.util.Scanner; public class q_1987 { static int r; static int c; stati.. 2018. 4. 24. [알고리즘][DFS][2468] 안전영역 (JAVA) [알고리즘][DFS][2468] 안전영역 (JAVA) 문제 https://www.acmicpc.net/problem/2468 풀이문제를 처음에 이해하지 못해서 다시 풀었습니다ㅠㅠ 가장 높은 층이 5층이라면 1층부터 5층까지 비에 잠길 때 경우를 모두 카운팅해줘야 합니다. 저는 n층 이상인줄 알고 삽질을 하고 방황하다 다시 풀게 되었습니다. 독해력을 더 키워야겠어요..... 가장 높은 층의 값을 구한 뒤, 층 수(k)를 고정시키고 k값 이상인 층들을 모두 방문하며 영역을 카운팅하면 됩니다. DFS를 몇 문제 풀어보니 유사한 패턴의 문제가 있는 것 같아 전보다는 푸는 시간이 덜 걸렸네요. 그리고 check배열을 초기화 시켜주지 않아서 한참 들여다 보고 있었습니다.ㅠㅠ 다음에는 이런 실수 하지 말아야지...!.. 2018. 4. 23. [알고리즘][문자열][9933] 민균이의 비밀번호 [알고리즘][문자열][9933] 민균이의 비밀번호 * 문제https://www.acmicpc.net/problem/9933 *풀이 문제에서 팰린드롬을 고려하지 않으면 틀리는 문제이다. 이것때문에 잠깐 고민했지만 그 외에는 어렵지 않게 풀 수 있는 문제였다. 팰린드롬이란 aba, 기러기 이런 단어들처럼 한 문장 자체가 거꾸로 해도 같은 단어들을 가리킨다. 이 문제에서는 이 단어를 받으면 출력 결과로 포함하기 때문에 코드를 짤 때 고려해줘야 한다. count값으로 답이 1회일 경우만 출력되도록 처리했다. *코드123456789101112131415161718192021222324252627282930313233343536373839404142package algorithm_String; import java.. 2018. 4. 21. 이전 1 ··· 8 9 10 11 12 13 14 ··· 23 다음