Lv 3. 미로 탈출 명령어
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/150365 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   📌 자바(Java)로 푸는 미로 탈출 명령어 문제 - 최적화 과정 🚀 🔎 문제 개요 프로그래머스 - 미로 탈출 명령어 문제입니다.주어진 N x M 크기의 미로에서 출발지(x, y)에서 도착지(r, c)까지 정확히 k번 이동하여 도달하는 가장 빠른 경로를 찾는 문제입니다.단, 사전순("d" → "l" → "r" → "u")으로 가장 빠른 경로를 찾아야 합니다. 💡 예제 입력int n = 3, m = 4;int x = 2, y = 3,..
Lv 2. N-Queen
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/12952 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   이 문제는 N이 주어질 때N개의 Queen을 서로 공격할수 없는 경로에 놓는 방법의 수를 구하는 문제다.DFS와 백트래킹을 활용하여 문제를 해결하였다. 1번째로 DFS method다.이문제를 보고 풀이도중 생각이 되는것이하나의 줄에 하나의 Queen이 존재해야한다는 생각이 들었다.0에서 N-1 까지 순회하면서 만약 dfs 의 파라미터인 depth줄에 i 번째 board가놓을수 있는 곳이라면 재귀를 통해 다음 dfs로 depth+1 하여 들어..
b12100. 2048(Easy)
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/12100   이 2048 문제는 보드를 최대 5번 이동한 후 가장 큰 블록 값을 계산하는 문제다.기존 코드에서는 DFS를 통해 모든 이동 조합을 생성한 뒤, 완성된 조합에 대해 5번의 방향 이동을 한꺼번에 처리했다. 이 방식은 각 단계에서 이동 상태를 효율적으로 관리하지 못하고,불필요한 회전 및 복구 연산이 반복되는 문제점이 있었다.이를 해결하기 위해 saved와 board 변수를 활용하여 현재 상태를 효과적으로 관리하며,이동 조작을 단계적으로 수행하는 방식으로 개선했다.board는 입력받은 초기 보드 상태를 저장하는 변수로, 탐색 과정에서 변경되지 않는 원본 데이터를 담고 있다. 반면, saved는 현재 DFS 탐색 중의 보드 상태를 관리하는 ..
Lv 3. 여행경로
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  이 문제는 DFS를 사용해 주어진 항공권 목록을 통해 모든 가능한 경로를 찾고,알파벳 순서상 가장 빠른 경로를 반환하는 문제다. 먼저 dfs 메서드를 통해 "ICN"에서 출발하여 다음 공항으로이동하는 재귀적 탐색을 진행하며,방문한 항공권은 isVisited 배열로 관리해 중복 방문을 방지하고,routes 리스트에 경로가 완성될 때마다 추가한다. dfs는 현재 공항과 경로, 그리고 몇 개의 티켓을 사용했는지를매개변수로 받아 모든 항공권을 사용해..