[JAVA] 알파벳 ::: 그래프탐색,DFS,백트래킹
·
Algorithm 문제풀기/Baekjoon
[ 문제 ]https://www.acmicpc.net/problem/1987  [ 제출코드 ]   [ 풀이 ]주어진 맵에서 알파벳을 탐색하여, 서로 다른 알파벳을 방문하는 경로의 최댓값을 구합니다.깊이 우선 탐색(DFS) 방식을 사용했습니다.   [ 시간 복잡도 & 공간 복잡도 ]DFS 탐색DFS에서 모든 가능한 경로를 탐색하려고 할 때, 각 지점에서 4개의 방향으로 재귀적으로 탐색합니다. visited 배열을 사용하여 방문한 알파벳을 기록하고, 이미 방문한 알파벳을 다시 방문하지 않도록 처리합니다.visited 배열의 크기는 최대 26 (`A`부터 `Z`까지)입니다. DFS에서 탐색하는 경로는 각 위치에서 최대로 26개의 알파벳을 방문할 수 있습니다.각 위치에서 4방향으로 탐색할 수 있지만, 방문한 알..
[JAVA] 섬의 개수 ::: BFS
·
Algorithm 문제풀기/Baekjoon
[ 문제 ] https://www.acmicpc.net/problem/4963 [ 제출코드 ] [ 풀이 ] 상하좌우와 4곳의 대각선으로 이동할 수 있기 때문에 dx와 dy는 총 8곳 입니다. 연결된 섬의 개수를 세야 하기 때문에 연결된 시작점에서만 카운트해주면 됩니다.
[C++] 2003번 수들의 합 2
·
Algorithm 문제풀기/Baekjoon
[ 문제 ] 2003번 문제보기 N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i] + A[i+1] + … + A[j-1] + A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. [ 제출코드 ] [ 풀이 ] 처음부터 더해서 sum이 M을 초과하면 sum=0으로 하고 i+1부터 다시 더한다. [ 이야기 ] '알고리즘 분류'를 보지 않고 풀었다.
[C++] 1026번 보물
·
Algorithm 문제풀기/Baekjoon
[문제] 1026번 문제보기 [제출코드] #include #include #include int main(){ int N; std::cin>> N; std::vector A; std::vector B; for(int i=0; i> x; A.push_back(x); } for(int i=0; i> x; B.push_back(x); } std::vector tempA(N, 0), tempB(N, 0); std::copy(A.begin(), A.end(), tempA.begin()); std::copy(B.begin(), B.end(), tempB.begin()); std::sort(tempB.begin(), tempB.end()); std::sort(tempA.begin(), tempA.end()); std..